You need a way to link the page ID/slug with the category ID/slug. You can easily get the page parent ID/slug for subpages (though if you have grandchildren pages or lower you will need to loop through until you get the top level page), so take that out of the mix.
Simply put you want to have
if (is_page('X') || $post->post_parent == X) :
$posts = get_posts('typical parameters here to retrieve from category Y');
foreach($posts AS $post) :
// as usual
endforeach;
endif;
If it's not easy to dynamically associate the page with the category then you are going to have to tell the page what category (if any) to display. You've got two options with this
1. Use a custom field called sidebar category, for example, and get the user to type in the category slug
2. Use a custom field but set it up with a bit of script in a meta box to display drop down selection of all the categories available, and then the user can just select one.
Then on the front end you can just check if the custom field has a value and if so, pull it out and display the posts in the category.
Personally I'd go for option 2 if you can't do the dynamic association. It's a bit more work but there's less room for error. It'd take a bit of scripting but once it's done it's the best solution really.