Если у вас есть TSystemTime, самый простой способ сделать это - преобразовать его в TFileTime и затем добавить смещение. Это получит значение, которое будет соответствовать значению c# DateTime.Ticks одновременно.
function TSystemTimeToCSharpTicks(sTime: TSystemTime): UInt64;
var
fTime: TFileTime;
begin
SystemTimeToFileTime(sTime, fTime); //Should check if it returns an error.
//Result := UInt64(fTime); Not too sure how safe this is depending on the architecture.
Result := (UInt64(fTime.dwHighDateTime) shl 32) + UInt64(ftime.dwLowDateTime);
Result := Result + 504911232000000000;
end;