Remove Internal Style Sheet if no Value Provided?

You are using a code a bit dirty: foreach is not needed here, and I think you forgot to print the header color (see comment in following code).

After that, if you want to print nothing if you have no customiztion, create an out variable and it’s not blank print the styles:

add_action('wp_head', 'dynamic_options');

function dynamic_options() {    

  $checkbox = (array) get_option('sandbox_theme_social_options');
  if ( ! isset($checkbox['hide_sidebar']) ) $checkbox['hide_sidebar'] = 'off';
  $css = array(
    'headercolor' => get_header_textcolor() ? : 'blank',
    'wrapper_background_color' => get_option('wrapper_background_color') ? : 'blank'
  );
  $out="";

  if( $css['wrapper_background_color'] != 'blank')
    $out .= '#wrapper { background-color:"' . $css['wrapper_background_color'] . '"; }';

  // I think you forgot following 2 lines in your code ;)
  if( $css['headercolor'] != 'blank')
    $out .= '#header { color: "' . $css['headercolor'] . '"; }';

  if ( $checkbox['hide_sidebar'] == 'on' )
    $out .= '.sidebar_sec { display:none; }';

  if ( $out != '') echo '<style type="text/css">' . $out . '</style>';

}