The best way to do this is to have 9 players in your available players list, and to us the strictly follow depth chart option, and to set each of your trainees for starter backup and reserve at the training position for each one of the games. Here's an example for 1 pos OD training with player 1 as the trainee.
Pos- Starter, backup, reserve
PG- Player 1, Player 1, Player 1
SG- Player 2, Player 3, Player 3
SF- Player 4, Player 5, Player 5
PF- Player 6, Player 7, Player 7
C- Player 8, Player 9, Player 9
The next game, you would do the same thing but with your other trainee in all three PG slots. And be sure to use strictly follow depth chart, or your coach will sub out your player as he pleases. If you use this, all 3 players will get 48+, unless there is an injury or foul-out.
Hope this helps.
You also want to make sure to set "Let them play" in the foul options.
And of course, it still won't guarantee 48+, though it gives you the best chance. One scenario that will kill it is if your team enters garbage time when one of your non-trainees is at the foul line; instead of replacing the player shooting the free throw, the trainee will be replaced (so, for example, my 33 yo PF this week will receive 20 seconds of pressure training). The next substitution opportunity the trainee will be brought back in, but this can often lose 2 minutes or so of training.