Spontan fällt mir dazu ein: Schieb deine Daten einfach in eine Queue so wie die anfallen. In einer parrallelen Schleife lässt du die dann bei Mausklick auslesen und ausschreiben. Ich hab mal ein Beispiel zusammengeschustert (an dem man sicher noch weiter feilen kann) um das Prinzip zu verdeutlichen. Zu beachten: Die parrallele Schleife wird durch die Zerstörung der Queue nach Beendigung der Datenproducerschleife beendet. Außerdem fasst die Queue in dem Fall unbegrenzt viele Daten. Lässt man das ganze also beliebig lange laufen stürzt das irgendwann ab. Da sollte man also noch eine sinnvolle Begrenzung der Elementezahl oder andere Vorsichtsmaßnahmen hinzufügen.
P.S: Man kann natürlich auch aus den Elementen sukzessive ein Array zusammenbasteln und das zwischenspeichern über Schieberegister. Kann mir allerdings vorstellen, dass für große Datenmengen die lösung mit Queue performanter sein dürfte.