W ogóle lepiej by było tutaj użyć do-while, bo for zaciemnia nieco kod, gdy nie korzystasz z niego tak jak bozia kazała.

<?php
$i=0;
do {
$p++;
$versja = array('user-id' => $allegro_user, 'webapi-key' => $webapikey,
'country-id' => 1,
'offset' => $i);
$pktapi = $soapclient->call('doGetUserItems', $versja);
echo '<hr>Partia '.$p.' - '.count($pktapi['user-item-list']).'<hr>';
$i+=25;
}
while( count($pktapi['user-item-list']) < /* lub <= */ 25
); ?>
Gdy masz tam !=25, pętla będzie wykonywała się tylko w jednym przypadku, chyba że masz to tak zrobione, by utrzymać rozmiar user-item-list przy rozmiarze 25.