Use a Task Queue to run the long employee-processing microflow asynchronously (in the background), while the UI remains responsive and the progress bar updates periodically.
User clicks Start.
A small microflow creates a Progress object (Processed = 0, Total = X).
That microflow adds the heavy processing microflow to a Task Queue.
The start microflow ends immediately, so the page stays responsive.
The Task Queue processes the employees in the background and updates ProcessedEmployeesCount as it goes.
A Microflow Timer refreshes the Progress object every few seconds, so the progress bar updates until the job is complete.
For refreshing I think https://docs.mendix.com/appstore/widgets/events/ is these days the way-to-go :)
But yeah I'd use the task queue as well. Make sure you think about error-handling and batching.
As a general guideline: Mendix does not commit when it reaches a commit activity. See https://community.mendix.com/link/spaces/microflows/questions/120781 for some more info.