Вот решение задачи, как Вы её поставили.
Предполагается что все справки одинаковы по числу строк
Файл длиной 100000 строк у меня преобразовывался менее 2 сек.
Скопируйте текст скрипта в блокнот, сохраните в файл с расширением VBS (например txt_stolb.VBS ) настройте свои пути к файлам и параметры документа. Запускайте в проводнике (или в FAR-е, коль Вы им пользуетесь) как исполнимый файл
Проверено - работает.
Осознаю, что скрипт Вас не устроит, но как поставлена задача, так она и сделана.
Доработки, конечно, возможны. Принцип формирования файла тут заложен хороший.
Код:

' Скрипт из исходного текстового файла делает другой текстовый файл
' В котором исходный текст располагается заданным числом столбцов
' Блоками указанной длины (в строках)
' Нумерация блоков (в случае 3 столбцов)
' 1 2 3
' 4 5 6
' 7 8 9
' и т д.
' Необходимо настроить: ------------------------
InText = "E:\Delete\Text.txt"
OutText = "E:\Delete\TextOut.txt"
WStrok = 67 ' Число символов в строке
LStrok = 17 ' Число строк в блоке
NCol = 3 ' Число столбцов в выходном файле
WPole = 10 ' Число пробелов между столбцами
' ----------------------------------------------
ReDim OutStr(LStrok - 1, NCol - 1)
Messa = ""
Pusto = String(WStrok, " ")
Probel = String(WPole, " ")
Set FSO = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set F1 = FSO.OpenTextFile(InText, 1, False)
If Err.Number = 0 Then
Messa = CStr(Time) + " Открыт файл " + InText + Chr(13) + Chr(10)
' Читаем исходный файл в массив
iString = F1.ReadAll()
F1.Close
iString = Replace(iString, Chr(10), "")
Mass = Split(iString, Chr(13))
iString = ""
N = UBound(Mass)
' выравниваем строки по ширине
For i = 0 To N
Mass(i) = Mid(Mass(i) + Pusto, 1, WStrok)
Next
Set F1 = FSO.OpenTextFile(OutText, 2, True) ' Создаём выходной файл
' Цикл по началам блоков
L = -1
For i = 0 To N Step LStrok
If L < 0 Then ' Готовим чистый бланк из нескольких колонок
For j = 0 To LStrok - 1
For k = 0 To NCol - 1
OutStr(j, k) = ""
Next
Next
End If
ii = i + LStrok - 1
If ii > N Then ii = N ' Заполняем бланк текстом
L = L + 1
For j = i To ii
OutStr(j - i, L) = Mass(j)
Next
If L = NCol - 1 Then
L = -1
iString = ""
For j = 0 To LStrok - 1
iString = iString + OutStr(j, 0)
If NCol > 1 Then
For k = 1 To NCol - 1
iString = iString + Probel + OutStr(j, k)
Next
End If
iString = iString + Chr(13) + Chr(10)
Next
F1.WriteLine iString
End If
Next
If L >= 0 Then
iString = ""
For j = 0 To LStrok - 1
iString = iString + OutStr(j, 0)
If LCol > 1 Then
For k = 1 To NCol - 1
iString = iString + Probel + OutStr(j, k)
Next
End If
iString = iString + Chr(13) + Chr(10)
Next
F1.WriteLine iString
End If
' Записываем результат в файл
' Set F1 = FSO.OpenTextFile(OutText, 2, True)
' For i = 0 To N
' F1.WriteLine Right("000000" + CStr(i) + " ", 7) + Mass(i)
' Next
F1.Close
Messa = Messa + CStr(Time) + " Записан файл " + OutText + Chr(13) + Chr(10)
Messa = Messa + CStr(Time) + " Преобразование завершено"
Else
Messa = "Ошибка при открытии файла " + Chr(13) + Chr(10) + InText + Chr(13) + Chr(10) + Err.Description
End If
L = MsgBox(Messa, 0, "Преобразование файла")