How could I process multiple webhooks in batches?

You could save your webhook data to a MySQL table and with a second workflow incrementally process the data.
The second workflow would just poll the database and whenever there is new data it loads all of them and processes them.

A nicer solution would be, to use transactions with the MySQL nodes. But afaik n8n does not support transactions at all right now.

Some feature requests about transaction support for database nodes:

@MutedJam, perhaps those three feature requests should be merged?