Hola José.
El problema que comentas del timer se puede solucionar fácilmente:
Cuando se desencadena el evento timer del control, sencillamente realiza Timer1.Enabled = False con lo que el reloj deja de funcionar. Una vez que tienes actualizados los datos haz Timer1.Enabled = True, con lo que ya tienes el timer funcionando de nuevo.
Por otro lado si comentas que el refresco de los datos tarda mucho, se produzca cómo y en el momento que se produzca, tal vez dejes al usuario parado, lo que puede resultarle muy molesto. Para evitar esto a lo mejor podrías plantearte añadir un 'botón refrescar' para que sea el propio usuario el que decide cuándo quiere actualizar los datos que visualiza.
Otra posible solución sería utilizar en un servidor un Exe ActiveX que controle el acceso a la bd de los distintos clientes, controlando mediante eventos los cambios realizados para así refrescar los datos de los clientes.
Ánimo y Suerte.