There is still much to be desired within WordPress when it comes to dealing with parent and children pages. The core code is there, and it’s usable, but there’s not a lot “out of the box” to play with.
We’ve developed a bit of code to help make your life a little easier.
Adding the code below to your functions.php file will let you remove the other children pages while on the parent page.
add_filter('wp_list_pages_excludes', 'remove_others_children');
function remove_others_children($excludes = array()) {
$all_pages = get_pages();
$all_children = (array) get_page_children(true, $all_pages);
foreach ( $all_children as $child )
$excludes[] = $child->ID;
if ( ! is_page() )
return $excludes;
global $post;
$this_heirarchy = (array) $post->ancestors;
$this_children = (array) get_page_children($post->ID, $all_pages);
foreach ( $this_heirarchy as $ancestor )
$this_children = array_merge($this_children, (array) get_page_children($ancestor, $all_pages));
foreach ($this_children as $child)
$this_heirarchy[] = $child->ID;
return array_diff($excludes, $this_heirarchy);
}
Here are some examples of what it would like without the code, then with the code.

A huge thanks goes out to Matt Martz for working with us on helping get this code ready.