Não, basta definir a propriedade ConnectionTimeout
Eu tive o problema exato (D2009, MSSQL2005), mas TADOConnection.ConnectionTimeout funciona bem para mim (aliás, o valor padrão para esta propriedade é de 15 segundos). Observe que a dispersão do tempo limite é bastante ampla, portanto, uma vez que você atingirá o tempo limite após 5 segundos e mais tarde, por exemplo, após 10 segundos, mas 20 segundos é realmente demais para a tentativa de conexão.
Provavelmente você tem um problema com CommandTimeout (se estiver tentando executar uma consulta com o componente de conjunto de dados ADO associado). Você precisa lembrar que, se você definir TADOConnection.ConnectionTimeout :=5 e em seu componente de conjunto de dados, por exemplo, TADOQuery.CommandTimeout :=15, e você está tentando executar a consulta, então você obterá o tempo limite após 20 segundos.
Se você realmente tiver um problema com a execução da consulta, não apenas na tentativa de conexão, esta postagem pode ajudá-loComponentes ADO CommandTimeout