Instructions
Go to Pewter City and talk to the old man by the PokeMart. He will give you a Rainbow Wing, which enables you to see and catch Ho-oh. While you're near the Mart, stock up on powerful Poke Balls, particularly Ultra Balls.
Travel to Ecruteak City and go to the Tin Tower. Make your way to the very top of the Tin Tower where you will find Ho-oh waiting.
Save your game before attempting to catch Ho-oh. To catch this Pokemon without a master ball, you'll have to significantly lower its HP before using an Ultra Ball or another powerful ball. If your Pokemon accidentally scores a critical hit and Ho-oh faints, it disappears and you can't catch it again. The best way to ensure that nothing goes wrong is to save your game immediately before attempting to catch Ho-oh, and restarting without saving if you don't catch it on the first try.
Battle Ho-oh. Make sure your starter Pokemon is at least at level 50 and isn't vulnerable to fire or bird Pokemon; Meganium, for example, would be a poor choice in this battle as grass-type Pokemon are weak against both the fire and flying type. The best strategy to catch this Pokemon without a master ball is to lower its HP and change its status to make it more vulnerable. Putting Ho-oh to sleep using Hypnosis or Sleep Powder is a very good strategy.
Throw Poke Balls. Once Ho-oh's HP is significantly lowered and it is asleep or otherwise immobilized, use an Ultra Ball. This is a legendary Pokemon, so one Ultra Ball probably won't do the trick on the first try.
Keep throwing Balls until you catch Ho-oh. If Ho-oh faints during battle or if all your Pokemon are knocked out, turn off the game without saving and turn it back on. You will start over in front of Ho-oh. Try again.