Попробуйте проверить отладкой какой размер шрифта попадает в GetTextHeight. Потому что по умолчанию размер 12, а в стиле размер может быть 18. Так же вы не выполняете ListView.ApplyStyleLookup после заполнения ListView.
Очень рекомендую перед заполнением ListView выполнять код
AListView.BeginUpdate;
AListView.OnUpdateObjects:=Nil;
После заполнения:
AListView.EndUpdate;
ListViewUpdateAll(AListView); // В цикле применяет ListViewUpdateObjects ко всем элементам
AListView.ApplyStyleLookup;
AListView.OnUpdateObjects:= ListViewUpdateObjects;
Вот небольшое видео, сорри за качество. Триалка приложения
Так вся загрузка и должна через хелпер идти, зачем там лишнее городить?надеюсь в таксе не запускали загрузку картинки... тогда бы это все объяснило. На форуме уже выкладывал динамическую подгрузку картинок в LV.
поток разделяет время ОС
в один момент на одном ядре один поток
соответственно, 20 потоков на 2 ядрах организуют очередь в 10 штук на ядро
вот и не надо столько делать))