My first thought would be to pre-populate the field in media uploader. This would likely require a javascript function added to the uploader. Not sure how to do this, especially in a way that avoids a dirty hack. Something that may be worth investigating though.
Using PHP, you probably need to add it to the post content as it is inserted into the DB. Hook something like the ‘wp_insert_post_data’ filter. Your code would search the content for image tags in the post that are not embedded by caption shortcode. You would extract the needed info for the shortcode from the image tag, then insert the appropriate shortcode tags along with the needed caption.
SEO Friendly Images plugin will do it for you. I use it and it works very well.
Sorry, I’m wrong. SEO Friendly Images doesn’t do bulk captions, only Titles and the ALT attributes