making a plugin that moves other plugins wp_head actions to wp_footer

Remove the action, then add it back on a different hook.

I think the only concern you could have with doing this is ensuring you do that late enough for the action to have been hooked, it should possible using the plugins_loaded hook(because that runs after plugins have loaded).

add_action( 'plugins_loaded', 'juggle_sharethis_action' );

function juggle_sharethis_action() {
    remove_action( 'wp_head', 'st_widget_head' );
    add_action( 'wp_footer', 'st_widget_head' );
}

Actions
http://codex.wordpress.org/Plugin_API/Action_Reference

Adding actions
http://codex.wordpress.org/Function_Reference/add_action

Removing actions
http://codex.wordpress.org/Function_Reference/remove_action