Host-side USB and peripheral-side USB are controlled by different hardware. Your PC has a host-side interface, and so does your TV. Your flash drive, phone, etc. have a peripheral-side interface.
You can never connect host-side to host-side, or peripheral-side to peripheral-side. The hardware doesn't support it. ("USB To Go" changes this but read on.)
I'm not sure of any Windows software that implements a mass storage interface over USB, but there is such software for Linux; Android and WebOS phones run it. But the software won't function unless the hardware USB chipset supports peripheral-side. (I'm not sure how the new "USB To Go" spec affects things but you would need hardware and a driver to support it.) Not sure how installing something like this would work.
You could possibly cobble something together with a rooted Android phone but I am not sure how it would work. There's apps for Android that expose the SD card via Samba over Wifi, and then you could connect the phone to the TV via USB. Have not tried it myself and I don't know if it will work.
Regarding your link above, Firewire is a more sophisticated and CPU-independent protocol than USB. USB (unless new "USB To Go" features are used/implemented) can't operate without a host controller orchestrating things.