Firstly, your daughter needs to know that this is happening all the time, wherever she goes, even if she does not notice. She has to blank them, every time, and be conscious of her own safety. Being noticeably affected by it will give them a thrill and allow them to know they've put their message across.
If you catch them, just say coldly, 'Don't stare at my daughter', or better still, just give them a cold look. That usually makes them uncomfortable. Stepping in front of him was exactly the right thing to do. I did the same with my seven year old granddaughter when an old man was leering at her recently. They don't need to know her age, the less information they have the better. Knowing she's definitely underage and that you can't stop them leering will give them extra satisfaction.
This really should have started when she was a baby - not letting strangers talk to her/ touch her etc.
And you're right - it is human nature, but not a pleasant aspect of it. All men will look, all the time, and women who claim otherwise are just not observant. Even the 'good little husband' will look.
Make sure she has a phone, a personal alarm and knows to always make plans for her own safety if she is going anywhere. Going into town with friends, for example - what will she do if they get separated? Work on the scenarios.