clignoter a 20Khz est impossible.
au mieux tu pourras le faire clignoter au maximum de 1 a 40 fois par secondes c'est la, la limite de la GDI.
en 3D avec OpenGL ou DirectX, ce sera difficile de faire mieux car les ecart de performances entre les cartes graphique ne pourrait donner un resultat fiable, même si en theorie on pourrait monter de 1 a 800-900 FPS mais encore une fois, ce n'est pas fiable car si on active la VSync on descend entre 60 a 120 FPS.
même avec un timer reglé a 1ms donc, difficile de rendre un clignotement probable de 500 blink/s
avec ce code :
Shape.Visible := not Shape.Visible;
surtout que passé 50-60Hz (ou 50-60 FPS) l'oeuil humain est incapable de discerner le moindre clignotement et vois donc une image totalement figée (phenomene qui commence a 20 FPS).