Grundsätzlich kannst du bei
Indy zwei Threads verwenden, aber du kannst nicht genau parallel senden und empfangen. Diese Vorgänge selbst musst du z.B. mit TMonitor absichern.
Wenn du wirklich genau parallel senden und empfangen möchtest, empfehle ich ICS. Das funktioniert mit nicht-blockierenden Sockets und asynchronem I/O, ist aber nicht komplett threadsicher. Das bedeutet, soweit ich es verstanden habe, dass du bei TWSocket gleichzeitig in einem Thread SendStr und in einem ReceiveStr nutzen kannst, aber nicht mehrfach die gleiche Operation parallel.