It depends on what you need.
If you need to lock a shared variable you can use critical sections, mutexes, semaphores, or events.
Critical sections are probably by far the simplest to understand. You can take a look at the syncobjs unit to see some easy to use object oriented classes for this.
Edit: Ah, if you need non-OOP code you can also take a look at that unit. It uses the standard platform independent interface in the RTL to do the different things.
For example, a critical section:
var cs: TRTLCriticalSection;
// Call this to initialize
InitCriticalSection(cs);
// And this when you are done with it
DoneCriticalSection(cs);
// And to lock some resource
EnterCriticalSection(cs);
... do stuff with whatever needs locking
LeaveCriticalSection(cs);
The CS variable would be a single lock that only prevents others from entering the same. So you will want one for each thing that you are locking.