Lo lógico para conexiones es utilizar una conexión en tu programa (ADOConnection). Si durante un tiempo no la utilizas, puedes desconectarla, de esta forma liberas la conexión, aunque pierdes tiempo en conectar y desconectar constantemente.
Lo siguiente que puedes hacer es utilizar un "Gestor de conexiones", es decir alguien que te gestione N conexiones para que las puedan utilizar N+M programas. Asignándole a cada programa una conexión libre en cada momento que la necesite y quitándosela cuando no la necesite. Eso es lo que se llama
"Connection Pool".
Me suena que hay componentes que gestionan Connection Pool para ADO, aunque no los he utilizado. Busca por internet, no debe ser difícil encontrar algunos.