You said QBATCH is set to *NOMAX, I am assuming that is for the Subsystem itself.
The Subsystem has JOBQs associated with it. You can set an activity level (Max Active) for each associated JOBQ. Then you go can go a step further and set a “Max by Priority” Level.
You can think of the Priority levels as you would think of additional Job Queues.
How is the Job Queue determined when a job is submitted? Can the user control that or will you have to change a bunch of programs?
You can write a program that monitors the Job Queue and changes priorities or move to different job queue.
You need to look at the whole picture and determine what is easyest to mantain and control.