I have already issued my ERC 20 token. But I want to add a time locking functionality to the token so the tokens issued during pre-sale / ICO will be time locked in user's wallets.
Is this possible?
You can't add functionality to your token after it has been deployed (unless you saw this problem in advance and added some way of extending the functionality).
So basically you can only use the functionality your token has built-in. If there is no such time lock, then you can't use time lock and you can't prevent your users from transferring tokens.
No, you cannot! You have to modify the code the deploy another smart contract. There's some ways to make a upgradeable smart contract but you have to do it from the first time.