Hola buenas
Yo lo haría del siguiente modo:
1) Define una variable global como tdatetime. Por ejemplo
Código Delphi
[-] var hora_inicio : Tdatetime;
2) En el evento oncreate del formulario añades esto:
3) Finalmente en el evento ontimer pon solo esta linea :
Código Delphi
[-] edit1.text := timetostr(now-hora_inicio);
El problema de tu código es que defines la variable en el evento del timer, con lo cual el valor actual se pierde cada vez que sale del evento. Además, cada vez que se ejecuta el timer tu mismo pones el contador a cero, cuando solo deberias hacerlo una vez al comenzar el programa.
Finalmente, lo de sumar 'manualmente' el valor del contador tampoco es muy buena idea porque la precisión del timer no es muy buena y a la larga tu reloj terminaria adelantandose o atrasandose.
Saludos
Hogol