->rbraz - don't worry, it only does about 2fps on my Core2 Duo 2.66GHz!
->fryer - you almost certainly don't have to worry about data locking in this program - multiple threads can share the model data with no problems, and since they're each writing to different bits of the screen it's OK too.
You need the locking when one thread writes some data and another thread needs to read it back. Usually you create a 'semaphore' (not a mutex, which is slightly different). One thread then 'locks' the semaphore, does the writes and unlocks it again. If the other thread tries to lock the semaphore while the first thread still has it locked, it will block until the semaphore is released. Clever eh?

Jim