I planned a similar thing out before, but never got around to build it for a lack of money as a student. Now I don't live there anymore, so the whole story ends there for me.
But what I planned was this: Get two simple consumer WiFi access points, where at least one of them is able to function as a client that connects to another WiFi. If you can't find that, you can also connect a good USB-WiFi-adapter to your Raspberry Pi or another computer that acts as a router. Configuring the Pi to act as a router is really easy on Linux.
If you manage to find two WiFi access points that can work together, you can set one up at each house and replace their antennas (you will need access points that have removable antennas for that) with directional antennas. Those are fairly cheap, if you are looking at Yagi-style antennas. You could even build your own from some long nails and a piece of wood. If you're working with a WiFi access point and a computer that acts as a router (like a Raspberry Pi), you need a USB-WiFi-adapter that has a removable antenna as well of course (the one I linked does).
EDIT: I didn't mention this explicitly, but nothing stops you of course from using two Raspberry Pis with a USB-WiFI-adapter each. This is the most configuration work but allows you to customize every detail and gives you control over what your neighbor can do in your network (what he can access). Using firewall software like
iptables you can control that exactly. Without that, it's basically like he and you share the same private network, e.g. like you are on the same WiFi.
After that, you configure your ISP's router with a static route that points to your WiFi access point. Basically a static route is an entry in the router that says that a certain network can be reached through a certain IP address. That IP address is the one that your WiFi access point to your neighbor gets from your ISP's router. The static route then tells all the computers in your home network that your neighbors home network is available over the WiFi access point.
You need to figure this out as well. 2.4 GHz is good for distance, some people achieved results like 10-15 miles, with fancy special antennas of course. If the distance is not a problem, even with a homemade antenna, you can think about 5 GHz. That will increase your speed by a lot but might not be possible depending on the distance. If you have access to good antennas, you can try that right away, but if let's say 20-50 Mbps are enough, 2.4 GHz is probably the safest option.
Also think about the fresnel zone, i.e. the distance to the ground. Depending on the distance to your neighbor and the frequency you decide to go for, you might need to put the antenna on the second floor or even on the roof, for best results.
Here is a little 5-minute sketch I made, that outlines the network configuration. It's really not that difficult as it sounds at first. You can easily make this work within a rainy afternoon (though sunny weather is better for the WiFi ;-) ).
Of course you also need to set up the WiFi between the two access points with the appropriate SSID, password and IPs etc. I would turn DHCP on those off and configure the
10.0.0.0/8 network with static IPs. Of course, your normal network (and your neighbor's one) can stay the same with normal DHCP. The static routes manage all the work to reach your neighbor.
Hope this is somewhat helpful. :)