Just use the Group module, and create a content type like "Personal Groups". And then create a "group" for each user (using something like the user's name as its label), of group type "Personal Groups" (or whatever you want to label it).
Tune the permissions which come with the Group module (which are different from standard Drupal permissions!) to fit your needs.
Possibly you also want to use all sorts of integrations with modules such as the Rules module or the Views module (the Group module is entirely entity based, so those kind of integrations or virtually unlimited). As a sample: if a user enables the checkbox in their profile (as in your question), you could have the Rules module intercept such event, and then "Create a new entity (= i.e. a Group)", and / or trigger some kind of approval/notification process to make such creation of a requeted group happen.
For more details about the various roles and permissions, refer to my answer to "What are the various roles supported by the Group module?".
Resources
PS: This answer applies for either Drupal 7, or Drupal 8.