Ok there are 3 ways.
1:A pokeathlon prize on Thursday must have 1000 points.
2:Smash rocks in Cianowood.
3:On a pokewalker route I think it was suburban area.
Trade the heartscale at blackthorn to remember old moves.
PS:At the pokeathlon you can only get one heart scale each Thursday.
rock climb
Heart scales are found in cianwood? i never knew that! you can get heart scales in the pokeathlon too. also a guy in blackthorn will trade a heart scale to make Pokemon remember moves
you have to use hm rock smash on rocks to find them.
get the red gyrados at lake of rage
On heart gold, it can be found by smashing the breakable rock beside the pokemon school. I think you can also find it in this location on soul silver.
He is benevolent with a heart of gold. - She is beautiful and she has a heart of gold.
catch a luvdisc, most of the time they will be holding a heart scale. fish for them. no, you can't buy a heart scale.
A heart of gold itself is an expression relating to someone kind. "They have a heart of gold".
The heart scale is used as a payment for the move tutor, or you can sell them.
It's Darkrai. You can't get him in Heart Gold.
Well its very very rare but its in rocks that can be smashed with rock smash. Or you can use your diamond or pearl game and trade a Pokemon over holding it.
Yes, you can have your Pokémon learn old level-up moves in "Pokémon HeartGold" by going to the Heart Scale Move Tutor in Blackthorn City.