The easiest way to do this might be to add the following code to your theme's functions.php file:
function mytheme_login_form($form) {
return str_replace('Username', 'Email', $form);
}
add_filter('simplemodal_login_form', 'mytheme_login_form');
function mytheme_authenticate_username_password($user, $username, $password) {
$user = get_user_by_email($username);
if ($user) {
$username = $user->user_login;
}
return wp_authenticate_username_password(null, $username, $password);
}
remove_filter('authenticate', 'wp_authenticate_username_password', 20, 3);
add_filter('authenticate', 'mytheme_authenticate_username_password', 20, 3);
The code above will change Username to Email and then use the email to try and retrieve the user.
This doesn't include email validation and your client-side messages may still say username instead of email...but it's a start.