Add:
$first_attachment = reset($attachments);
$first_attachment_id = $first_attachment->ID;
$first_attachment_title = $first_attachment->post_title;
Below:
$nbImg = count($attachments);
Now you are able to return the link with:
echo wp_get_attachment_link( $first_attachment_id, '' , true, false, $first_attachment_title );
If you need a sort of custom link markup, you can have a look at the related functions: http://codex.wordpress.org/Function_Reference/wp_get_attachment_link
Edit:
There is no need to get the attachements twice, as far as I see you only need to know how many attachements you have and the URL to the first attachement. So you could replace:
<?php
$args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'offset' => 0,
'orderby' => 'menu_order',
...
break;
}
}
}
?>
With:
<?php
$attachments = get_children(array('post_parent'=>$post->ID));
$nbImg = count($attachments);
$first_attachment = reset($attachments);
$first_attachment_id = $first_attachment->ID;
$first_attachment_title = $first_attachment->post_title;
?>
After that, you can place your link:
<?php echo wp_get_attachment_link( $first_attachment_id, '' , true, false, $first_attachment_title ); ?>