Pretty much any water type pokemon, plus zigzagoon, bidoof, mew, and a few others, but they will not learn this move naturally. It is a HM (Hidden Machine) that can only be obtained after completing different events. (Things you have to do differ by game and/or generation.
Mudkip or water type Pokemon
The most easiest way to get a Pokemon that can surf is get a Zizagoon,it can learn surf.
Surf to an island
Surf Right of Lilycove
Any water Pokemon besides magikarp and also linoone can learn surf as well.
i think if you have a gameboy Pokemon game you might be able to transfer it to your ds{ the slot for gameboy games is at the bottom of your ds}
surf
Try to surf you may find it
At the secret house of Safari Zone.
hach an egg or surf
Swampert, Hariyama, and Ludicolo.
You have to surf from LILYCOVE city to the right
He Doesnt.