You've just found out another reason why XML is by default a quite bad storage format. The problem is that you need to read everything up to that one line you're interested in, because you have to parse and understand the structure of the file.
The only way to improve on this is to give yourself hints, eg. saving indices of where each of the rows start and then jumping right ahead. However, that's no longer XML and it might be tricky getting .NET to read those fragments.
So, if you can't afford to keep all the parsed XMLs in memory, and you don't want to separate the XML files, perhaps you could use a trick of saving each of the entities you want to take as a separate XML document (with declaration, root element etc.), and saving them inside one file, along with indices of where each of these documents actually starts.
Of course, this is only useful if you're generating the XMLs automatically. It's no longer a valid XML, which means noone else can read or write it.