If you don't include Battle Tower, Battle Frontier or Link Battles, the hardest trainer by far is Whitney. Her Pokémon have high levels for that point of the game (18 and 20 IIRC) and her Miltank seriously knows how to use Rollout. To top that, Normal Pokémon only have one weakness: Fighting. And at that point you could have only gotten one Fighting Pokémon, which was a Machop you traded at the Dept. Store.
The hardest one in R/S/E is the Parasol Lady with the Milotic. The only time ever I got beaten by a normal trainer.