There are three that I would suggest thinking about: Nidoking, Rhydon, Mamoswine
Nidoking: Nidoran can be obtained before the third Gym Leader, meaning if you want a Ground type early on, this can be a good one to get. Moon Stones are easily obtainable by getting first place in the bug catching contest, which happens to be located near where you can get Nidoran. This means you just need to time your days and save before entering the Bug Catching Contest (just in case you didn't catch that Scyther or Pinsir). Nidoking is great since it has a huge movepool, from Earthquake to Surf and the Elemental Beams.
Rhydon: While you might not have the option to get Rhyperior, Rhydon is also a good Pokemon, thanks mainly to that base 130 Attack, which means Earthquake can be doing a lot of damage. You get Rhyhorn at the Safari Zone, albeit at a pretty low level (17).
Mamoswine: Get Swinub in the Icy Path. It has a solid offensive typing (and offensive stats), and can prove helpful against Clair and Lance. This would be my suggested Ground type if you can handle getting it later in the game,
You can also obtain Golem, Steelix, or Rhyperior through the Gen IV trade glitch, which is outlined by bulbapedia:
In Generation IV there is a glitch with the GTS that allows Pokémon to evolve by being traded, but without actually trading them. Players must first place a Pokémon that evolves by trading it (with the correct held item, like Metal Coat for Scyther or Electirizer for Electabuzz) onto the GTS. To prevent the deposited Pokémon from being traded away, players should request an impossible trade, such as a level 9 and under Mewtwo.
The player must then search for a Pokémon on the GTS and trade for it. After this has been done, returning to the Pokémon that was placed on the GTS by the player and taking it back will cause it to evolve.
It is possible that this was intentional, however due to the fact that it was removed in Generation V makes this very unlikely. The risk of not being able to reacquire a Pokémon while trying to evolve it through trade evolution over the GTS is very great and this could have been a planned countermeasure. The requirement (a trade) must still be met in order for the Pokémon to evolve, but this system would prevent a player from potentially losing the Pokémon they wanted to evolve.
I would highly suggest getting Steelix. You can obtain an Onix very early in the game through trading, which gets you that experience boost. Steelix has that Steel typing, which is wonderful.