1.
Use Imap.PeekMessageByUID
instead of Imap.GetMessageByUID
to avoid seen/unseen state change, when downloading emails.
2.
To download last 10 messages use Imap.GetAll()
and take 10 last uids:
List<long> uids = imap.GetAll();
List<long> latest10 = uids.TakeLast(10);
foreach (long uid in latest10)
{
IMail email = new MailBuilder()
.CreateFromEml(imap.PeekMessageByUID(uid));
string subject = mail.Subject;
}