Ignoring the spaces (which you can fill in yourself later) and possible leading zeros (likewise), you're looking to match any of
[5-9]\|[0-9]+
[1-9][0-9]\|[0-9]+
[0-9]+\|[0-9]+\|[0-9]+
for times in the range
[5,10) minutes
[10,99) minutes
1+ hours
respectively.
So join those together in a match group `(...|...)` with sufficient anchoring at the beginning and end (so you don't match on `14|59` or `1|00|00`).
This gives
grep -E 'on +([5-9]\|[0-9]+|[1-9][0-9]\|[0-9]+|[0-9]+\|[0-9]+\|[0-9]+) *$'
We can simplify a little, because the seconds are common to all three regexps:
grep -E 'on +([5-9]|[1-9][0-9]|[0-9]+\|[0-9]+)\|[0-9]+ *$'