Apparently the DateInterval class supports milliseconds, but the default method does not support it as an input value. You need to instead use the createFromDateString class of that method
// convert your date to DateTime object
$date = '10:00:00.500000';
$dt = new DateTime($date);
// convert your period to
$interval = '00:25:10.300000';
//Extract time parts
list($hours, $minutes, $totalSeconds) = explode(':', $interval);
list($wholeSeconds, $milliSeconds) = explode('.', $totalSeconds);
//Create interval with milliseconds
$intervalString = "{$hours} hours + {$minutes} minutes + {$wholeSeconds} seconds + {$milliSeconds} microseconds";
$interval = DateInterval::createFromDateString($intervalString);
// Add interval to date
$dt->add($interval);// Format date as you needecho $dt->format('H:i:s');
echo $dt->format('Y-m-d\TH:i:s.u'); //Output: 2021-11-12T10:25:10.800000