C потоками полностью согласен - сделай многопоточное приложение, но сперва попробуй во всякие циклы вставить
Код:
Application.ProcessMessages
.
А чтобы узнать где сильнее всего происходит загрузка программы кинь на форму ListBox и перед выполнением каждого этапа обработки текста вставляй туда название текущей операции. Изврат, возможно, но лично мне так нравится ;-)