There is nothing to stop you from using Tk and threads in the same program. Just don't use Tk on more than one thread.
I'd offer a some sample code to prove this, but I can't find a suitable Tk starting point. Lot's of sample code, but none that actually does anything other than maintain the interface.
If you can provide a sample app that puts up a window with a ProgressBar that actually move without manual intervention, then I'll modify it to run a long running process in a thread and have the progress bar update as a result.
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
"Memory, processor, disk in that order on the hardware side. Algorithm, algoritm, algorithm on the code side." - tachyon