Heart scales aren't as easy to come by in HGSS, but you can go fishing for Luvdisc in the little pond/waterfall area in front of the Pokemon League with DPPt. If memory serves, they have a 50% chance of carrying a heart scale, which are pretty good odds. So you can either steal it from them with Thief or just capture all the Luvdisc you come across. Then just trade them over.
In Platinum when you catch a Pokemon for the newspaper they give you some random pokeballs and a Heart Scale, as to a way in HG/SS I don't know of a efficient way --- [Insert funny/interesting (or lack thereof) signature here]