The method
1) Create at least 9 npc's of 1,2,3,4 level , very near to your city so that you can hit them within 30 mins. That means the "one way trip " time should be less or equal to 30 mins. Caution : once you get all the honor medals the 1,2,3 level npc's will no longer be required for regular farming. so, I would suggest to take a temporary city just for farming honor medals , create low level npc's around it and drop it later when you get all your honor medals. Or you may give it to other alliance member so that he can farm honor medals from it.
2) Now, send 9 waves of ballistas to hit them.
3) You can use any type of heroes as I had found the type of hero does not really mater. I had found most of the honor medals with attack heroes.
4)You should use any no of ballistas to hit them without loss. Now , as the one way travel time is 30 mins or less , all the 9 waves will come back home within an hour.
5) When all troops come back, again send another 9 waves. So , you are sending 9 waves every hour from each city. If you are doing this from 2 cities , that makes 18 attacks every hour, the more cities u use more better it is. You don't have to hit a fully regenerated npc in order to get medals.
Here are some screen shots of honor medals I got from half filled npc's
Set a target of hitting the npc's hundred or more times a day , you will surely get 2-3 honor medals each day. You will also get plenty of wisdom and courage medals from level 4 npc's as the drop rate of these medals are much higher than honor medals. So , by the time you get 15 honor medals you will have enough to all types of medals to jump to duke.
Some more screenshots to show number of ballistas really does not matter.
From level 4 with 500 ballistas
From level 3 with 400 ballistas( I can do level 3 with 100 ballis , but just too lazy to change the numbers, copy paste for all attacks)
From level 3 with 200 ballistas
From level 10 forest attacking with 16 k warrior and 15k archers.