If I got it well, something like snippet below should would do what you want.
I assume there are four items in your ‘gallery-area’ taxonomy and that the class you apply to your div has to vary accordingly (i.e. span_1_of_4 has to become span_2_of_4, etc.).
<?php
$gt_args = array('fields' => 'ids');
$terms = get_terms('gallery-area', $gt_args); //retrieve ID of the terms of 'gallery-area' taxonomy
$counter = 1;
foreach ($terms as $term){ //for each term (i.e. gallery-area-1, 2, 3 and 4) contained in $terms
$gp_args = array(
'post_type' => 'gallery-section',
'gallery-area' => $term ,
);
$all_posts = get_posts( $gp_args ); //get all posts
$cover_post = $all_posts[0]; // take only the first one
echo '<div class="col span_' . $counter . '_of_4 gallery_block">';
?>
<a href="https://wordpress.stackexchange.com/questions/166378/<?php get_permalink($cover_post->ID); ?>"> //$cover_post is a post object
<?php $cover_post->post_title ?>
</a>
</div>
<?php
$counter++;
}
?>
Note that $cover_post
is a post object;
EDIT Term IDs might not work like this in get_post. You may rather have to try with the following parameters instead of those above. Let me know..
$gp_args = array(
'post_type' => 'gallery-section',
'tax_query' => array(
array(
'taxonomy' => 'gallery-area',
'terms' => $term,
),
),
);