Image upload fields and drag & drop tables are two separate elements that you can combine in your module by using a form callback function to declare your fields and a theme function to theme the upload fields in a drag & drop table.
D7 Form API provides an upload field named 'managed_file'. The documentation provides a clear example:
<?php
// Use the #managed_file FAPI element to upload an image file.
$form['image_example_image_fid'] = array(
'#title' => t('Image'),
'#type' => 'managed_file',
'#description' => t('The uploaded image will be displayed on this page using the image style choosen below.'),
'#default_value' => variable_get('image_example_image_fid', ''),
'#upload_location' => 'public://image_example_images/',
);
?>
Then you can have a look at the documentation to setup the field with your desired settings. This element does not have a #multiple setting. So you can either generate many fields, either add new fields using ajax as in cck in D6.
Finally you can check this documentation on how to use drupal_add_tabledrag();