There are no filters/actions or hooks that fire here.
You would need to
- use a shortcode as you describe
- Call a function
- Create your own action/filter hook
Edit: What you are asking for would be the equivalent of a WP hook that you could use here
while(have_posts()) {
the_post();
// there is not WP hook that fires here
}