Sure you can do this, using the Rules module (and the Webform module for your form). Here is a blueprint about how to do so:
1. Rules Component to block a user
Create a (rather basic) Rules Component to "block" a user, whereas you use a "User" entity as parameter for it.
2. Rule to cancel an account
Create a (rather basic) rule like so:
- Rules Event: Before saving a user account
- Rules Conditions: None (feel free to add whatever fits)
- Rules Action: Schedule the execution of the Rules Component (from step 1), to be executed after 14 days. For this you need to have the "Rules Scheduler" (a sub-module of Rules) enabled. Make sure to use an "id" for this scheduled task that includes the user's uid (you'll need it in Step 3).
Refer to my answer to "How to send an email notification reminder based on a user's date of entry field?" for a sample of a rule that is pretty close to what your rule should look like (especially Step 3 of it).
3. Rule to delete the scheduled rule
Use the Webform Rules module to create a rule like so:
- Rules Event: After a webform has been submitted
- Rules Conditions: Check the webform Id (to ensure it's the form you want to consider).
- Rules Action: Delete the Scheduled rule from Step 2, and Reschedule it to be executed 21 days after there account activation date. For this you'll need the id of the Scheduled task, but if you used the user's uid for that, this should be no problem.
PS: I'm assuming this is about D7 ...