In HeartGold you can only get a Razor Fang from the Battle Frontier, in Olivine City. It costs 48 BP so you need to play for a fair while to get the points!
You can find it at Route 214 and at the Battle Frontier.
Here's a visual aid.
You can get it at the battle frontier for 48 points. I also think you can get it at route 214.