I don't know how to learn Pikachu body slam, it is level 22 now and I am in Lavender Town. Could I get it later?
No. (sorry)
As the player cannot return to the ship once it has left, all of the items on the ship and in the port can be permanently missed without ever obtaining them.
However, if you heal your Pokemon on the S.S. Anne and then lose a battle before healing anywhere else, you'll return. You can also exploit a glitch to return.
source