I play both Garen and GP in a regular basis, and GP does not counter Garen top. Sure, Q spam on Garen sounds great in theory, but in practice what usually happens is that your mana regen and Q damage won't be able to keep up with Garen's tankiness and sustain.
Teemo on the other hand is a very solid Garen counter. You kite him all day long, harass with blind and toxic shot, and shroom the bushes to prevent him from camping there.
Teemo, a good Yorick, a good Riven, a good Cho'gath.
Although admittedly, Cho'gath vs Garen is more of a skill matchup.
Both have great sustain. Garen can't spin on Cho without being ruptured. Both can silence one another. Both are tanky. Both have an execute ultimate... though Garens has more range and is better vs Cho than Cho's is against Garen.
Olaf is also quite good if played properly. If he starts to Q towards you, you axe him and run away.. Once his Q is down, you can freely harass him and win exchanges.