У меня было такое же желание, и я пришел к выводу, что оно не поддерживается. Даже с MySQL C API вы можете использовать низкоуровневые функции для выдачи запросов и ожидания ответа асинхронно, но вы никогда не сможете получить полный асинхронный сбор результатов - вы всегда заканчиваете блокированием с момента, когда первая часть результата является вернулся до последнего.
У меня нет прямого опыта с этим, но я читал, что Postgres поддерживает полную асинхронность (по крайней мере, в C API).