Is there a way to pull out keys from a NameValueCollection that pertain to a certain pattern/naming convention without having to iterate through every value in the collection?
A name value collection is not designed to be particularly efficient at searching like that. Whatever method you use, it has to go through all items. You could use LINQ; something like:
col.Keys.OfType<string>().Where(s => s.StartsWith("SomeString"))