I just answered this question for a commenter on my site concerning how Role Scoper can help you accomplish this.
To enable a user to edit one particular page, but not anything else:
1. Give them a WordPress role of Subscriber
2. Manage > Pages > Edit their page
3. Expand the “Editors” tab under “Advanced Options”
4. Check the non-braced checkbox to the left of your user’s name (if child pages will be created, also check the braced checkbox {[]}, which assigns the role for all current or future child pages)
5. Save the Page
Note that if you also assign this user a Role Scoper Blog Role of Page Author, they will be able to create child pages off their member page, but not off any other pages:
1. Go to WP Admin > Roles > Blog Roles
2. Select your user name(s)
3. Select the Page Author role
4. Click Update
OR, if you want all subscribers to have this ability:
1. Go to WP Admin > Groups > Blog Roles
2. Select [WP Subscriber]
3. Select the Page Author role
4. Click Update
If you’re thinking automation…
Role Scoper won’t create the member page for you, though that would be a nice feature and some other plugin might do so. Here’s a code clue. Once the page exists (and assuming you assigned the Page Author Blog Role to [WP Subscriber] above), it’s just a matter of
//$user_id = ID of member receiving the page role
//$post_id = ID of member page
global $wpdb;
$wpdb->query(
"INSERT INTO $wpdb->user2role2object_rs
(src_or_tx_name, role_type, role_name, assigner_id, scope, obj_or_term_id, assign_for, inherited_from, user_id)
VALUES ('post', 'rs', 'page_editor', '1', 'object', '$post_id', 'both', '0', '$user_id')" );
// of course, if there's a chance this will be executed more than just at user registration,
// you would need to check for an existing entry before inserting