Yes, you will have another chance to catch the Red Gyarados in the Lake of Rage when you defeat the Elite Four one more time. Defeating the Elite Four resets most of those types of special in-game events in Heart Gold and Soul Silver.
"In Pokémon Gold, Silver, Crystal, HeartGold and SoulSilver, the red Gyarados is found in the Lake of Rage. The player has one chance to catch it and the incident triggers the battle against Team Rocket in the Team Rocket HQ in Mahogany Town. When captured or defeated, the red Gyarados drops a Red Scale. While this is the only chance to catch the Red Gyarados in the original games, it will respawn in the remakes after the player defeats Lance and the Elite Four, should the player fail to capture it." - Bulbapedia