I don't know how to do what you want with only an Android device, but since you mention reverse tethering using USB you could achieve the same thing using only a computer that has an internet connection and wi-fi. You can use your computer's wi-fi to share your internet connection with multiple devices, including your android phone, using one of two methods:
- Setup your computer to be a virtual wireless router. All devices could then share internet by connecting to your computer using wi-fi.
- Setup an ad-hoc wireless network, but unfortunately Android devices will only be able to connect if you set them up using these instructions that require your phone to be rooted.
If you don't have wi-fi on your computer, then a PCI or USB wi-fi network card is generally quite cheap to obtain.