What I do is train my tyrogue up to just before level 20, then feed it irons or protiens to get the stats I want. At this stage, one shouldn't be vastly higher than the other: if you give vitamins at a lower level, you'll need to give more to raise the stat you want. Confused? I came across this when I was prepping for my experiment: trying to get a zigzagoon to the same stat level as a near identical one, I found I had to give it eight Hp ups just to raise it's hp by one point. Later on, doing something similar with another pair of nearly equal pokemon at level 25, only one HP up was needed to increase the HP by the same level.
So your tyrogue, at level 19, and with it's exp very close to the level up point, might have stats like this (these are made up, BTW)
HP=26
Att=9
Def=10
Sp.Att=11
Sp.Def=10
Speed=12
For Hitmontop, I'd level attack with defense, for the other two, I'd make sure which ever stat required is higher by about 2 points. From what I've seen, at this level, stats rise by about one or two points anyway, so a gap of two between stats should be enough.
Hitmontop is more difficult to get, because the stats must be equal. All you can do is watch the two, and equalise if you think you need to. So long as your attack and defense stats are the same when Tyrogue levels up to 20, you should get tyrogue, regardless of whatever stat increase occurs when level twenty is reached.
Good luck!