Well, you can make a conditional branch check a variable. And you can assign a variable equal to the main character's current SP easily enough.
From there, you'd want two common events. One would presumably be Parallel Process, to check if the main character runs out of SP on the world map.
The other one would be called. Each troop would have a Battle Event that calls that common event every turn, thus checking mid-battle SP status.
Was that clear enough? If it wasn't, I can mock up some screenshots.