Change the name attribute of your input to 'estimatedDelivery[]' and it will become an array.
However, in your query, the where clause
WHERE estimatedDelivery = '$key'
will become:
WHERE estimatedDelivery = '0'
WHERE estimatedDelivery = '1'
etc.
If all your estimatedDeliveries are unique in the table, you could use this part in the where clause. If not, then you will (risk an) update to several or even all rows.
Either way, you would need to preserve the old date to use it in the where clause. So you might as well keep track of the primary key which can be done in several ways. e.g.
echo "<input type='hidden' name='id[]' value='".$row['someid']."' >"
Then change the foreach loop to a for loop
if (isset($_POST['estimatedDelivery'])) {
for ($i = 0; $i < count($_POST['estimatedDelivery']); ++$i) {
'... SET ... = ' . $_POST['estimatedDeliver'][$i] . ' WHERE someid = ' . $_POST['someid'][$i];
}
}