There are a lot of factors there, such as whether they’re physical or virtual, shared network pipes, etc.
Generally we break systems up into several groups for testing & staging rollouts (test, preprod, production).
With a huge number of systems we usually use the “stagger start times over X minutes” option to reduce their contention with each other.
Given something like a 4-hour maintenance window, with 10 minute action stagger times, and caching downloads ahead of time, I’ve know customers to do tens of thousands of systems at a time.
I’m sure Bigfix could do more, but there’s always the question of how many systems you can roll back if the patch ends up crashing the machines.