Some random thoughts:

First, since you seem to have heat at the floor vents, your "mix" door or linkage may be the problem. I think your truck has a physical cable from the heat control to the mix door, but I'm not sure. (Later models have electric motors to control the movement of the vanes inside the heater box).

Second, if your truck has had the thermostat replaced, it is possible that you have a lower temp thermostat. I believe the OE spec is 180F or 82C. When I installed the TRD 7th Injector kit in my truck, it came with a 160F thermostat. That was okay in Savannah, GA, but winters here in D.C. are a bit colder. I just put my 180F back in my truck today so that the heater will put out some heat -- the 160F would barely let the heater keep up when the temps dropped below 30.

You should also check to ensure that the heater (water) control valve (on the firewall behind the intake manifold) is opening fully when your heat control is turned up. Loose linkage or a bad/plugged water valve could also limit the amount of heat you can get inside the cab.

Good luck, and let us know what you find.