Disconnect the speedometer at the transmission, and drive the truck. If the noise stops, then try this..
Try lubing your speedo cable, you will have to pull it out from the transmission side, unless you want to take out the dash. Just undo the cable at the transmission, pull the inner cable out give it a good look over to make sure it's not damaged. clean it with some wd-40 and some rags. Then put a coat of grease(wheel bearing grease will work). Twist the cable as you slide it back into the outer tube to make sure it properly engages the back of the speedo. If this doesn't fix it you may have to replace the whole cable and shielding. You can change the cable without pulling the insturment cluster out, but its easier to remove it with the cluster out.