So, jetzt hab ichs hinbekommen, ich habe zwar keine Ahnung warum es jetzt funktioniert aber es geht auf einmal nach mehrmaligem brennen.

Ich habe langsam den Verdacht das mein PC der Übeltäter ist...

Also Danke für euren ganzen Tipps, damit kann ich jetzt schonmal das STK500 + AVR als Fehlerquelle ausschließen

Jetzt für alle die Interessiert sind, hiermit bekomme ich ein ca. 1mS High + 19mS Low

Code:
#define F_CPU 8000000L
#include <avr/io.h>
#include <avr/interrupt.h>
volatile int time=0;

ISR(TIMER0_OVF_vect)
{
TCNT0 = 176;
	time++;
	if (time<=80)
	{
		PORTD =0x40;               // PORTD6 auf High setzen
	}
	
	if (time>=80 && time<=1600)
	{
		PORTD=0x00;
	}
    if(time>=1600)
	{
		time=0;
	}        
}

int main ()
{
DDRD=0xff;                      // PORTD6 auf Ausgang

TCCR0 |= (1<<CS00);		
TCNT0 = 176;
TIMSK |= (1<<TOIE0);

sei();
   do
   { 
   }
   while (1);
}