Sorry, you can't in Pokemon Heartgold. But you can in Emerald, Ruby, Saphire and crystal.
In HeartGold, Lance is the champion, so you'll have to defeat the Elite Four before you can battle him.
mt.moon once and check evrey day at the Pokemon league and one day he should be there
Yes, you can fight the Kanto Gyms in Pokémon HeartGold.
no sorry...
no
you fight your rival
in a cave in mount silver or mortar
About 10 times then you can fight your rival at certain days at the Pokemon League.
Yes, you will be able to fight Giovanni in Pokémon HeartGold but only provided you have the Celebi that was distributed for a limited time.
You have to fight her. xD No, but seriously, get a whole bunch of potions and fight with your strongest Pokemon. Just keep bashing on her Pokemon XD
At the end of the elite 4 he is the champion.
You have to fight it until its weak then use a master ball