die PWM des Arduino hat ja typischerweise 490 Hz (hab neulich mit dem Oszi nachmessen können) wenn man da in die unteren Bereich <20 kommt nehme ich auch ein Flimmern der LEDs wahr.
Man kann zum Einen einfach mit delayMicroSeconds selbst pulsen und zwar deutlich schneller, und zum Anderen hat man einfluss auf die Timer des Atmega über den prescaler factor. Es gibt drei Timer und jeder bedient zwei Pins, die Timer haben unterschiedliche Modi
Hier ein Cheat-Sheet mit Timern, Pins und deren Prescale-Faktoren und resultierenden Frequenzen:
http://arduino.cc/playground/Main/TimerPWMCheatsheetDie stimmen nicht ganz, die korrekte Formel lautet 16000000/(510*faktor) für Timer 1 und 2 aber 16000000/(256*faktor) für Timer 0 wobei 16000000 die Taktfrequenz des Atmega ist. Das würde auch die gemessenen 490 Hz erklären. 16000000/(510*64) sind grob 490.2 und 64 ist für alle Timer der Standarddivisor.
Über den prescaler kann man bei Timer 0 (Pins 5 und 6) also beispielsweise bis zu 62500 Hz erreichen, bei den anderen immerhin noch bis etwa 31372 Hz ... mehr als genug um das Pulsen nicht mehr sehen zu können

Achtung: Timer 0 kontrolliert delay() und millis(). Deshalb läuft Timer 0 auch grundsätzlich fast doppelt so schnell, weil er mit dem Standarddivisor so auf einer Frequenz läuft, die gut genug ist um Millisekunden zu berechnen ... also vielleicht besser mit Timer 1 und 2 spielen