There are some more possibilities -- but all of them I know of require a rooted device.
Using the Reverse Tether App
First, there's an App named Reverse Tether available for free on the Play Store (it's a limited trial, which restricts the time you can be connected -- but at least you can test this way whether your device is fully supported; the full version is about USD 5). According to an article at AndroidAuthority, setup should be as easy as 1-2-3: Plug in the USB cable, start the app, let it auto-configure (manual configuration is available as well) -- and there you go. You can also let it ask you to connect when it finds an USB-connection.
Manual methods using Wifi
I know, this is not USB -- but for completeness (and giving alternatives) I thought I might add these as well:
fiddling with the system and patching around
Several manual methods are available as well (and described e.g. at XDA) -- but they are mostly technically complex, and expecting you to patch system files; not for the every-day-user, but rather for the tech-freak.
Terminal and go
However, another nice method should just involve 3 lines in the terminal, and is described in a post here, to connect to an ad-hoc Wifi network. Basically, it should go like this:
su
ifconfig wlan0 up
iwconfig mode auto;
iwconfig wlan0 essid "your SSID" channel 11 mode auto
ifconfig wlan0 10.0.0.x netmask 255.255.255.0
manipulating some config file
Another quite easy method is also described here, and involves editing the wpa_supplicant.conf
file once (manually adding your ad-hoc Wifi network).
Easy-Peasy method
Do I need to say, really? Use a Wifi router. There are even some small "Travel routers" around for less than USD 50. And then connect your phone like you use to connect it to other Wifi networks...