At first sight, I would use the Take method of LINQ to get the 5 first elements of such a collection. Unfortunately, the NameValueCollection object is not accessible to linq.
That's why I would advice to use a List or a SortedList instead:
using System.Linq;
var y = new SortedList<string, string>();
y.Add("Element1Key", "Element1Value");
y.Add("Element2Key", "Element2Value");
...
y.Add("Element20000Key", "Element20000Value"); // ;)
var MyFirstFive = y.Take(5);
If you really need to use a NameValueCollection, then you can have a look on this related question that refer to make a NameValueCollection accessible to LINQ. Using LINQ will make your life easier