Для того, чтобы прочитать содержимое dll файла, его необходимо открывать как бинарный файл, а не как текстовый. Полученный массив байт уже можно будет интерпретировать как текст в нужной кодировке.
Вообще, при таком количестве данных, как уже говорили выше, надо использовать виртулизацию. Гуглите запрос wpf virtual grid.
Вот, к примеру, реализация на codeproject https://www.codeproject.com/Articles/775352/WPF-Vi...
1. Решение содержит несколько поектов.
2. Отдельно проекты открыть можно, если скопировать их в отдельную папку, но студия все равно создаст для таких проектов решение.
3. Вкладки называются по имени файла, текст которого они содержат.