That's definitely a horrible idea.
Generally speaking, setting a thread or process priority is a bad idea, because it is non deterministic, and you might starve out other threads/processes in the act. Also, you might actually elevate the priority of lower priority threads/processes because of starvation.
On top of that, the thread pool's threads are meant to be reused, and by changing the priority of the thread, you are changing the expectation of the task that will get the thread for use after your routine runs.
That being said, you have two options. If you only need to prioritize your tasks and don't mind if other items not related to your tasks get executed before yours, then you can use the thread pool with a producer consumer pattern, with some wrapper code which will take the highest priority item from your queue.
If you want the threads only to run your tasks, then you have to create your own thread pool (using the System.Thread class) and then do the same thing, using wrapper code to get the task to execute based on priority.
The new classes in the System.Threading namespace in .NET 4.0 (not released yet) will handle the creation of a separate thread pool for you.