Ignoring overheads for the moment, you need to transfer 24 megabytes
and you need to have it finished before the transfer starts 24 hours
later. You therefore need an average throughput rate of at least
24 megabytes / 24 hours = 1 megabyte/hour . 1 hour is 3600 seconds,
so you need 1 megabyte / 3600 seconds. 1 megabyte is 8,000 kilobits,
so your rate must be at least 8,000 kilobits / 3600 seconds
which is about 2.2 kilobits / second.

Your actual needed rate will be higher than that, once some overheads
are taken into account, but it will still come out as less than 2.3
kilobits/second.

As you can tell from the above calculation, the necessary rate is
less than the round-off error in your usage rate.

You will not be able to use a full 800 Kbit/s on the link (overheads),
but if we arbitrarily say that you should be able to get 90% bandwidth
without difficulty, then you would have up to around 720 Kbit/s . If
you subtract the 600 Kbit/s already in use, your available bandwidth
is on the order of 120 Kbit/s, which is roughly 52 times faster than
you need to finish the task in time. The transfer should therefore
complete in less than half an hour during peak times, and less than
5 minutes off-peak.

First I want to compliment the excellent reply that was before this one.

To add to that, I would suggest looking into network traffic queues to help
out. QoS is what you need to look for now.
These are access-lists defining network traffic along with policies
declaring how much bandwith must be always allowed for or restricted for
certian access-list classes of network traffic. This would be helpful in
your situation where you would not want your application to overlord the
network connection yet still be guarenteed a certian amount of bandwidth in
order to complete.