The simplest way is to unplug the ATMega328P from the board (or otherwise disable it) and just use the ATMega16U2 by connecting the ESP8266 to pins 0 and 1 of the Uno. No programming required at all then - the ESP8266 just takes the place of the ATMega328P.
If you really want to "pass it through" the ATMega328P then you will need to make a transparent pipe for the serial data. That would involve nominating two more pins on the Uno to be a new serial connection, and using SoftwareSerial to interface with those pins. Then you have a simple loop which reads from one port and writes to the other, and the same in reverse of course. Make sure you have the baud rates right. I don't know how well SoftwareSerial would perform at the (commonly) 115200 baud the ESP8266 works at.
EDIT: (Interfacing to a 3.3-V system)
Since the ESP8266 works at 3.3V, while the ATMEGA16U2 is powered at 5V, you might need to adapt the level of the ATMEGA16U2's TXD line (which is connected to the "RX" input line of the ATMEGA328P/Arduino Uno Board), to 3.3V.
To do this, connect a 1.5 kOhm resistor between the RX pin and ground. In fact, the connection between ATMEGA16U2 and ATMEGA328P is done using an 1kOhm series resistor. This, together with the 1.5k Ohm resistor, will create a resistor divider, which converts the 5V output to 3V.
See schematics below.