You will need an Item called Pokégear.
In HeartGold and SoulSilver, Trainers will only begin calling the player for rematches once the player has collected seven badges and beaten Team Rocket at the Radio Tower in Goldenrod City. In addition, once the Radio Tower has been saved, the player can call registered Trainers to arrange rematches with them without having to wait for the respective Trainers to call the player. Each Trainer has a specific time during a specific day each week where they will accept a rematch when called; if they are called at any other time of the week, they will use their usual script, and a rematch will not be arranged. When a Trainer is called at the appropriate time, as long as the player is not at the same route or location as the Trainer, they will accept the challenge of a rematch and can then be battled at their original location with higher-level Pokémon at any later point in time (though, once the rematch has taken place, the player will need to call or be called again in order to carry out another rematch).
In Pokémon HeartGold and SoulSilver, the Gym Leaders of Kanto and Johto would be found in the Fighting Dojo. However, unlike Platinum, the Leaders will not arrive at the Dojo until they have been called on for a Rematch.
To re-battle a Gym Leader, the player has to first obtain the Gym Leader's number. Following that, the player can call the Gym Leader at any time, but he or she will only accept a rematch when their schedule is free.
When a Gym Leader has accepted a rematch, he or she will stay in the Fighting Dojo until he or she is defeated. There is no limit to the number of times a Gym Leader can be re-matched.
Note that the phone numbers for most of the Leaders can be obtained after defeating the Elite Four. However, rematches with the Gym Leaders cannot be scheduled until after the Earth Badge has been obtained (i.e. Blue has been defeated).
I love Weird things ¯(°_o)/¯