Use el ConnectionManager::config()
función para crear conexiones sobre la marcha y ConnnectionManager::alias()
método para hacer que todas sus clases de Table lo usen por defecto.
Hay un muy buen artículo que describe el proceso aquí:
http://mark-story.com /posts/view/using-cakephp-and-a-horizontally-sharded-database
La única diferencia es que puede crear la configuración de conexión sobre la marcha en lugar de declarar los fragmentos manualmente como se muestra en ese artículo.