display two images in theme header.php file

I think you should be using the WordPress loop instead of a foreach, since you’re using WP_Query.

 <?php if( $header_images->have_posts() ) { while( $header_images->have_posts() ) { $header_images->the_post(); ?>
      <div class="header-image">
           <?php echo get_the_post_thumbnail( $post->ID, 'thumbnail' ); ?>
      </div>
 <?php } } ?>