Hola fide_uci,
La verdad es que yo utilizo variables globales para registrar las conexiones y no me va mal.
Concretamente, por cada conexión entrante le doy entrada en un ListView, registrando el id del hilo y un puntero al mismo, por si quiero desconectarlo. Con el propio ListView puedes saber cuantos hilos hay conectados e incluso verlos en pantalla.
También puedes utilizar esto:
Código Delphi
[-]IdTCPServer1.Threads.LockList.Count;
IdTCPServer1.Threads.UnlockList;
Aunque nunca lo he probado.
Un saludo.