Sort custom field by post

Here’s a loop that pulls all your post with the custom field key “Country”…

<?php
$countryPosts = new WP_Query();
$countryPosts->query('meta_key=country');
?>
<?php while ($countryPosts->have_posts()) : $countryPosts->the_post(); ?>
CONTENT STUFF HERE
<?php endwhile; ?>

Now to order that you can add order=ASC or order=DESC so this line reads:

$countryPosts->query('meta_key=country&order=ASC');

Here’s the loop that will show all the post that have the custom field filled out for a specific country, in this example, Japan:

<?php
$countryPosts = new WP_Query();
$countryPosts->query('meta_key=country&meta_value=japan');
?>
<?php while ($countryPosts->have_posts()) : $countryPosts->the_post(); ?>
CONTENT STUFF HERE
<?php endwhile; ?>

Update: After re-reading your question I realized I may not fully understand what you are trying to do correctly. The above code will let you display posts from a specific country but it won’t show that “archives” type navigation box. From the sound of it, you may want to create a custom taxonomy for countries rather than using a custom field. This will make it a lot easier to interact with the posts based on the Country.