I don't quite understand the problem.
The data that I make available for editing on a form can be covered by one, or at most two, TSQLQueries in at least 80% of cases. If there are more, you should rethink your design and move parts of the form to a TFrame, for example.
Ultimately, this means that there is one data module in the application that is responsible for the database connection, and the combination of TSQLQuery/TDatasource ( along with the associated data-sensitive controls) are located on the forms.
And if I then have to respond to a scroll event, I use the OnAfterScroll event directly in TSQLQuery. To do this, I neither don't need to assign any functions that may differ for different forms and purposes nor use any observer construction. That would only get me into trouble and can be done easier.