by Muff Stuff.
Hello,
i think i understand the behavior you want to develop. I have never tried something similar so this will just be my "guessings", hopefully someone with more experience can come with a miracle solution.
I belive that there is already some context storage in the database associating blocks to users, since one can move blocks to the dock and keep those settiings. You might want to look onto it to get some ideas.
I also did a quick look to the block_positions table and there seems to contain all the necessary information to specify where one block goes, except the user context. I think its possible to tweek the relation between the block_positions and the block_instances tables, not sure it would be the best way to go though.
Hope it helps