Arkadaşım byte olarak hesaplayacaksın, yani diyelim 10Kb için 10*1024=10240 eder.

Buraya da değeri aralık olarak gireceksin. Misal ilk 1000 Byte için :
<?php curl_setopt($ch, CURLOPT_RANGE, "0-1000"); ?>
Sonraki 1000 byte için:

<?php curl_setopt($ch, CURLOPT_RANGE, "1001-2001"); ?>
veya sondan 1000 byte almak için:

<?php curl_setopt($ch, CURLOPT_RANGE, "-1000"); ?>
gibi. veya aralık olarak da yazılabilir:

<?php curl_setopt($ch, CURLOPT_RANGE, "0-1000, 1001-1500"); ?>
şeklinde. Bu şekilde yapacaksan curl ile bağlanıp belirli bir aralığı alıp, sleep ile biraz bekleyip devam edebilirsin. Veya doomsday arkadaşımızın dediği gibi fread ile yapabilirsin, onun verdiği koda ekleme yaparsak, limit koyarak bu şekilde olabilir yanılmıyorsam:

<?php
$dosya = 'yazilacak_dosya';
$url = 'alinacak_dosya' ;
$limit = 10; //KB olarak Limit

$yaz = fopen($dosya,"w");
$fp = fopen($url,"rb");
   while (!feof($fp)){
    fwrite($yaz, fread($fp, round($limit*1024))); // limite göre çekiyoruz    
    sleep(1);//1 saniye bekliyoruz
   }
fclose($fp);
fclose($yaz);
?>