How can I allow users to create private pages?
What you're talking about is Drupal node access control, which is a huge subject.

The core's built-in support for node access control is rather course, and to control per-user access to view a page, you must use some sort of node access control module.  There is a page at Drupal.org listing all node access modules, with a capsule review of each.  I suggest you take a look at that page to see if you can find a suitable module.

One I suggest you take a closer look at, is Flexi Access.  It let you control access to a single node (page) for an individual user.  This, I believe, fits well with your requirements.  Many other content access modules have content types and/or roles or groups as their smallest unit of resolution.

Disclosure: I am the maintainer of Flexi Access.