Estas pasando de tener una conexión local de minimo 100 MB a una de menos de 1/4 MB y eso optimista.
Aunque todo motor SQL puede accederse remotamente, la verdad es que estan optimizados para acceso en una red local o mejor, directamente.
Lo que puedes hacer:
1- Disminuye la cantidad de registros/datos en cada transaccion. Evita los SELECT * FROM Tabla por SELECT Campo1,CampoN... FROM Tabla WHERE Exactamente lo que quieres. Tambien el uso de procedimientos almacenados, donde mucho del procesamiento se hace en la BD y solo pasas y recibes datos puede ayudar.
2- Usa caches.
Por lo general todo sistema tiene mas tablas de "lookup" que son masomenos estaticas y una pocas transaccionales, que se mueve mucho.
Asi que puedes descargar las tablas mas estaticas y solo tener una conexion "viva" a las transaccionales. Las tablas pueden estar en un servidor firebird embeido local. Asi, tienes 2 conexiones de BD: La Bd de cache local y la de internet. Tambien puede servir el cache en memoria (aun mas rapido, pero los datos deben caber).
Basicamente, una mezcla de lo anterior, es lo maximo que se puede hacer
2a- Por ultimo, contratar un ancho de banda mas alto. Algunas empresas pagan por canales dedicados o planes de internet mas elevados para compensar por los sistemas C/S que no estan optimizados a internet.
3- Migrar a un framework N-Tier.
Si el proyecto lo amerita, migrarse a DataSnap (Tienes que usar Delphi XE2),
RemObjects o similar es lo mas ideal.
En el caso de RemObjects, hay una opcion buena y gratuita:
http://www.remobjects.com/da/relativity.aspx
Ese es un servidor N-Tier que te da conectividad remota a cualquier motor de BD, firebird incluido. Utiliza un sistema que es MUY eficiente en sus comunicaciones, y te permite tirar SQL tal como lo conoces.
La parte mas dificil la consigues "gratis". La parte complicada es que debes crear una libreria de acceso usando REST o oDATA. Bueno, es ligeramente dificil.