Got them all. I just go to the section where each one lives, then stand on a spot and do circles. You can look for pokemon indefinitely if you do that, the step counter never advances (I'm sure you all knew that though).
The rare ones will appear roughly every 20 pokemon, and I can stay there till I'm bored, or run out of balls. I flee from stuff I've caught, so unless I see 30 chanseys in a row, I'm fine. Normally I end up quitting becasue the train has got me to work instead (I play more on the tube to work then anywhere else these days).
They are all a pain in the butt, but with patience and a bit of luck, then you can get them all. I've got Red and Green so can swap between them as needed, both have been played through multiple times so I can always sub on older caught mon also.
I'm currently going back through Gen 3 and recatching my complete dex (minux Cerebi and Deoxys of course) as I moved them all up to Pearl/Diamond a long time ago. So I've been spending quite a bit of time in the zone.