When a select is done, a shared lock is placed. That means another shared lock / select can be done at the same time ( = two or more selects at the same time). An insert/delete requires an exclusive lock. Once an exclusive lock has been placed, there cannot be placed another exclusive, or a shared lock.
When a shared lock has been placed, you have to wait for that process to finish before you can place an exclusive lock, for an insert/delete.
You can use different locking schemes to prevent needless locking/waiting: allpages, datapages, datarows. You can find in depth information about these locking schemes in the online documentation.
I'm not crazy, I'm an aeroplane!