penso che il tuo problema e' una questione di millesimi....

ho fatto questa prova e il confronto funziona..

codice:
procedure TForm1.Button1Click(Sender: TObject);
var t:tdatetime;
begin

ShowMessage(TimeToStr(time)+'  '+TimeToStr(DateTimePicker1.Time));

DateTimePicker1.Time := time;
t:=DateTimePicker1.Time;
if CompareTime(t,DateTimePicker1.Time)=0 then
ShowMessage('uguale');