Quanto à documentação, realmente é meio complicado achar, mas tem. Mas o gênio aqui perdeu todos os links que tinha... =/
Basicamente você tem que criar uma classe descendente da classe TThread, e sobrescrever o método Execute, que é o código em si. Ao compartilhar variáveis sempre use a classe TCriticalSection, para evitar colisões. Eu inicio as Threads e elas ficam em um "while" infinito, mas precisamente: while not (Self.Terminated) do begin end; Bom, deu para perceber que as possibilidades são vastas. Outra preocupação importante é o uso de CPU. Sempre use Application.ProcessMessages para dar uma aliviada. Por fim, procure saber sobre serviço do windows. Seria o casamento perfeito. [As partes desta mensagem que não continham texto foram removidas]