Ich hoffe das wird jetzt hier nicht off-topic.
Bei QueueUserWorkItem handelt es sich mehr oder weniger um "anonyme" Threads, soll (unter anderem) heißen, dass innerhalb des Threads erstellte Objekte nicht geshart werden.
Verwendet man innerhalb eines Threads eine TIdHTTP-Instanz so kann man von den einsparenden HTTP-Spezifikationen (z.B. Keep-Alive) profitieren, wenn es für mehrere Anfragen verwendet wird und an den selben Host gerichtet ist.
QueueUserWorkItem ist nicht plattformübergreifend (Delphi soll es demnächst ja werden), wenn man hingegen auf TThread aufbaut, ist man es.