Для начала желательно провести оптимизацию, сократить код, напр. зачем несколько раз явно проверять вид разделителя (':' or ';'), в переменной del он уже представлен, значит достаточно сделать так
всего разок
Код:
Login:=copy(Accounts.Strings[Acc], 1, pos(del, Accounts.Strings[Acc])-1);
Password:=copy(Accounts.Strings[Acc], pos(del, Accounts.Strings[Acc])+1, MaxInt);
...
if...
sMemo2.Lines.Add(Login+del+Password);
плюс явное обращение к визуальным компонентам увеличивает время т.к. оно тратится дополнительно на прорисовку, лучше подключить список типа StringList и после выхода из цикла заполнения передать его "на-гора" в Мемо процедурой .Lines.Assign()... Глядишь, и без потоков начнёт работать