There's the problem. You and your friend simply don't have fast enough internet to get a good connection to each other. I would recommend buying a Minecraft server from a host. Then your friend and you can get a very good experience and not have to worry about lag.
I know that it may seem hard to use a host at first, but there are a lot of videos on YouTube on how to use them.
I can't really recommend any because it would seem bias and I don't do bias Just look for a host with a nice web interface and price.