Non ho ben capito se il problema è la lettura dei dati ricevuti in real time o meno.
Ne il programma gambas deve solo trattare, con molta calma, questi dati, credo ti basti usare un file, alimentato tramite pipe dal programma C. Il programma gambas può, magari con un timer, andare a leggere questa pipe e caricarsi i dati. Eventualmente può anche svuotare la pipe (modalità fifo), così questa rimane solo come una sorta di cache tra i due programmi.
Poi...
Se il programma gambas fà solo da interfaccia grafica per l'utente, magari può anche reinviare indietro dati lui stesso al programma C. Non conoscendo la modalità con cui il programma C possa ricevere dati, non posso darti ulteriori consigli...