What about creating 2 fields ? One for storing the thumbnail and let it "public". The other one for storing the original image, mark it as "private" and define a permission for it using field permissions module ?
Edit Oct, 26: let's add some code :)
So if your confortable with creating a module, here are the instructions.
Create 2 fields: field_img_public and field_img_private, one will be on the public filesystem, the other on the private.
Then create a module to store this hook_node_presave():
function MYMODULE_node_presave($node) {
//Retrieve the file object from the public image.
$fid_items = field_get_items('node', $node, 'field_img_public');
$fid = $fid_items[0]['fid'];
$img_public = file_load($fid);
//Create the private path.
$img_private_path = str_replace('public://', 'private://', $img_public->uri);
$private_dir = pathinfo($img_private_path, PATHINFO_DIRNAME);
//Verify if the private folder exists.
file_prepare_directory($private_dir, FILE_CREATE_DIRECTORY);
//Copy the image
$img_private = file_copy($img_public, $img_private_path, FILE_EXISTS_RENAME);
//Save the resulting file object.
$node->field_img_private['und'][0] = (array)$img_private;
}
Then you just upload the public image and the private get populated.