I am assuming you mean to limit access to edit a sidebar in the admin interface, not to remove it on the theme.
Without getting to deep into how the widgets/sidebar framework functions behind the scenes, your best bet is going to be to fiddle with the $wp_registered_sidebars
global. However, the key is when - too early and the wp-admin/widgets.php template will see the missing sidebar and move it over to the Inactive Sidebars 'sidebar'. Too late and, well, you get no effect.
add_action('widgets_admin_page', 'sidebar_capabilities');
/**
* Keep in mind that you can certainly create custom
* capabilities for your sidebars. You could create a loop
* that generates new capabilities for each sidebar and assigns them
* to admin. You could then manage those capabilities for other
* users with the Members plugin by Justin Tadlock
*/
function sidebar_capabilities(){
global $wp_registered_sidebars;
//Remove the comment lines to see the global variable structure.
//print_r($wp_registered_sidebars);
//Use whatever capabilities you want.
//To test as admin, just put junk text for the cap.
if(is_admin() && !current_user_can('edit_plugins')){
//This sidebar name is from the twenty-ten theme.
unset($wp_registered_sidebars['primary-widget-area']);
}
}