No he probado algo así, pero deberías poder hacerte un array dinámico a base de TServerSocket, y cada vez que tengas que abrir un nuevo puerto, hacer un new TServerSocket, y asignarle ese numero de puerto.De todas maneras me parece un poco extraña la pregunta, pues generalmente, no es esa la manera de usar servidores, ya que el programa cliente debe saber perfectamente a que puerto conectarse, y si lo vas cambiando, le va a resultar difícil.