Ich glaube, Dein Pproblem liegt in der Konfiguration des Interrupts. Mit Config INT0 = Low Level zwingst Du en Controller so lange in die ISR, wie der Impuls low ist. Mach´s doch mal so:

Code:
Config INT0 = change  'ISR bei jedem Flankenwechsel
On INT0 Sprung
Enable INT0
Enable Interrupts

Dim Flag as Bit          ' "Habe-fertig"-Flag

Config Timer1=Timer, Prescale = 1


Do
 If Flag = 1 then
  Flag = 0
  CLS
  LCD Timer1
  Timer1=0
  Waitms 100
 End if
...
...
Loop

Sprung:
 If PIND.2=0 then  'Fallende Flanke: Impulsbeginn
  Start timer1
 Else                     'Steigende Flanke: Impulsende
  Stop Timer1
  Flag = 1
Return