Default Magento doesn't allow product mapping to categories per website or store level. This is global.
Is it possible to customize this in Magento to make it website or store level? If yes, then how much work will be required?
Theoretically it is possible, but I think it involves a lot of code.
You will have to keep in the table with the product-category associations an additional field for store_id.
Then you need to change the admin panel to load the associations for your current store view only or with store id 0 in case you set associations at default level.
Then you need to change the way the indexing works, to take into account your new store_id field.
Then you need to change the frontend to read only values for your store view (or store id 0).
But the easiest out of the box solution would be to make use of the visibility
field for products.
Assign the products to categories as you want and change the visibility for each store view where you don't want the product to appear.
This may not fit 100% with your needs, but it's the closest thing you have at your disposal.