Certo che puoi farlo con SQLAlchemy.
Tutto quello che devi fare è creare diversi motori di connessione, ognuno con il proprio creatore di sessioni. Niente in SQLAlchemy ti limita a un solo database alla volta.
engines = []
sessions = []
for dbconninfo in databases:
engine = create_engine(dbconninfo)
engines.append(engine)
sessions.append(sessionmaker(bind=engine)())
È possibile utilizzare ciascuna sessione per eseguire query, gli oggetti risultato sono allegati alla sessione che li ha prodotti, in modo che le modifiche ritornino al database corretto. Studia la documentazione della sessione in dettaglio, per vedere cosa succede se dovessi unire un oggetto da una sessione all'altra, ad esempio.