Use curl. Na página do manual:
-r/--range <range>
(HTTP/FTP/FILE) Retrieve a byte range (i.e a partial document)
from a HTTP/1.1, FTP server or a local FILE. Ranges can be spec-
ified in a number of ways.
0-499 specifies the first 500 bytes
500-999 specifies the second 500 bytes
-500 specifies the last 500 bytes
9500- specifies the bytes from offset 9500 and forward
0-0,-1 specifies the first and last byte only(*)(H)
500-700,600-799
specifies 300 bytes from offset 500(H)
No entanto, observe que a extensão SIZE deve ser suportada pelo servidor para que isso funcione.