<p>On linux, it's possible to create a tun interface using a tun driver which provides a "network interface psuedo-device" that can be treated as a regular network interface.  Is there a way to do this programmatically on windows?  Is there a way to do this without writing my own driver?  </p>

You can do this on XP with the
Microsoft Loopback Adapter
which is a driver for a virtual network card.
On newer Windows version:
Installing the Microsoft Loopback Adapter in Windows 8 and Windows Server 2012