User Profile page - one user can only access one page
Absolutely.

From the template side you'd do something like this to ensure they're editing their own page:

{# assuming the URL structure for the profile page looks something like http://mydomain.com/users?id=5 %}

{% set editUserId = craft.request.getParam('id') %}

{% if editUserId and currentUser.id == editUserId %}
    You're in!
{$ else %}
    {% exit 403 %}
{% endif %}


Where currentUser is a global variable that's a UserModel object.