"X used his Y on"
The structure is grammatical. The sentence makes sense. This is not in question. Sometimes it is also the natural way to say something. Nobody would object to
He used his charm on her.
But I don't think most people would write
*He used his muscles on her.
That's because used his muscles is the sort of phrase that seems to require another action in there: what did he use his muscles to do? It's not a hard and fast rule, but it doesn't seem like a natural way to say what you're saying. To complicate things, muscle is sometimes used metonymically to refer to an act of (or a threat of) violence, or the thugs who perform that violence, and so you might run across phrases like "He used some muscle" or something. But "his muscles" seems to me to strictly refer to his literal body parts, and not, say, thugs in his employ.
Furthermore, strong people use their muscles "on" weak people all the time, for positive reasons, so I think it'd be better to find a different word to stand in for what he did. He used his superior strength? his might? Or rephrase the sentence to be more direct:
He felt guilty for hitting a much weaker person.
This is not very natural to me (with one reservation, below).
It would be more common to say "X used his X to [do something]." "He felt guilty for having used his muscles to overpower a weaker person." "She felt guilty for having used her wealth to get out of trouble." "She used her charm to soothe any hard feelings." Etc.
Small reservation: "on" is not quite so out of place if you mean physically on, e.g., "the paramedic used his defibrillator on the patient." But even there I favor "to resuscitate the patient."