You know, I don't think the trigger posted at first is completely efficient, since it will ONLY trigger is he gets attacked, what if you damage him with spells? Also attacking the first unit that attacks him is not nice at all.
This is my advice, first, use a timer that checks life. And, instead of hero spells for the boss do unit spells so he doesn't need to learn them.
Second, the name of the original spell you gave him is the order you're going to use in triggers, it doesn't matter if you totally change the spell. So if you create storm bolt, order via triggers to Storm Bolt.
It would look like this so far:
Event - (Time) Every X seconds of game-time
Conditions - (Real) Percentage Life of (Variable assigned/Unit) becomes Less than or equal to X.00
Actions
Trigger - Turn off <This trigger>
Variable - Set BossPoint (Point) = Position of Boss
Variable - Set BossGroup (UnitGroup) = Units within X of BossPoint matching (conditions)
Unit group - Pick every unit in [Random 1 unit in BossGroup] and do Actions
--Order Boss to Human - Storm Bolt (Picked Unit)
Call DestroyGroup (udg_BossGroup)
Call RemoveLocaton (udg_BossPoint)
This will pick a random unit according to your conditions. Now the drawback is that you will need another trigger to turn on this trigger again.
Events - Every X seconds
Conditions - Percentage life of Boss becomes greater than X%
Actions - Turn on <First Trigger>
Hope I helped, sorry for not posting triggers properly