How does each miner know when to create a block? I have been trying to understand the protocol and reading related documents, there is a point where i get stuck. 

As far as i understand (correct me if not), when a transaction occurs, it is broadcast to the network and some miners receive it. When a certain number of transactions is reached, they are packed in a block and hash race begins.

What i fail to understand is; in this scheme, don't all the miners have to be in perfect memory coherence and time sync, so that they know when a block is to be sealed and start to iterate for hashes? Or do they not need to mine and hash the same global block, but have separate blocks which are later validated by other miners and interblock transaction collisions don't matter?

I know i misunderstand a very basic point in the protocol, but i can't figure what.
A miner begins creating a new block as soon as it receives a valid block from another miner.  It then begins to construct and hash the next block on top of the block it just received.

You were correct when you thought that each miner has a separate block from the rest.  Don't look at it as if miners are all cooperating to find a hash for the same block, but rather are competing against each other to make their own block the next in the chain.  If they find a valid block, they broadcast it, and other miners give up their efforts, and instead focus their hashing power on the next block.