If I understand your question correctly -- you want to have computation threads performing in parallel to make this look run faster. Is this correct?
You need to break this down into simple steps then you can turn it into a multi-threaded process.
1) break out your computation in your loop into a single method.
depthBuffer [y, x] = Computation(...)
When that works EXACTLY the same way as it did in this loop, then you are read to think about multithreading.
Next thing to do is expose yourself to multi-threading. Run this computation on a separate thread (Google running a method on a separate thread -- don't ask me how to do it) Once this is working then you are ready to try breaking your work out into parallel processes.
YOU have to figure out the following:
Your method must communicate that the computation is complete (event process?)
Your main process must have a way of taking the answer and applying it to the correct buffer.
You must read MSDN to make sure that your process is TOTALLY thread safe. So read each main command you are using and follow whatever you must do to be thread safe.
Finally you must figure out how many threads are efficient, how to break out the computations, and turn your loop into passing data into x threads with handling of x events returned to you.
Good luck. This will not be something you can just crank out in one hours time.