How To 'Tether' Your iPhone Free WITHOUT Jailbreaking
Step 0: Before you begin, this ONLY works if you are enrolled in the iOS Developer Program and have a Developer's Certificate ($99/year). I suppose if you have a trusting friend who is a developer and has available Devices (you're only allowed 99) they could build it for you via Ad-Hoc Distribution as well.
Step 1: Download and unzip iProxy. Open up the project file (.xcodeproj) in Xcode.
Step 2: Depending on your current SDK version, you will probably have to change your project's build target for your device (Get Info on the Target, then change the Base SDK to your current iOS version). While you're at it, you should also change the Code Signing Identity to your own Development Profile. Hopefully you already have a debug profile for wild card (*) App IDs. Otherwise you will have to register the App ID in your Provisioning Profile and re-install your Debug profile.
Step 3: Build and Run! iProxy will be installed on your iPhone.
Step 4: Configure iProxy. The GitHub page has a thorough guide with plenty of screenshots. Since this uses HTTP and SOCKS Proxy rather than true tethering, there is a fair bit of configuration necessary. However, once you get through the initial set-up, it's easy to select the saved network location in the future.