O edit_theme_options
recurso deve permitir que o usuário edite a barra lateral conforme descrito nesta página:
http://codex.wordpress.org/Appearance_Widgets_SubPanel
Código a ser adicionado ao functions.php
$role = get_role('editor');
$role->add_cap('edit_theme_options');
Editar:
Isso deve funcionar para impedir que o editor acesse temas ou menus
function custom_admin_menu() {
$user = new WP_User(get_current_user_id());
if (!empty( $user->roles) && is_array($user->roles)) {
foreach ($user->roles as $role)
$role = $role;
}
if($role == "editor") {
remove_submenu_page( 'themes.php', 'themes.php' );
remove_submenu_page( 'themes.php', 'nav-menus.php' );
}
}
add_action('admin_menu', 'custom_admin_menu');
Não tive chance de testar isso, mas apenas os remove do menu em que eles ainda podem acessá-los digitando o URL diretamente.