Hallo,
Events werden völlig sequentiell abgearbeitet, d.h. treten innerhalb eines Events andere auf, so werden diese dann erst weiter abgearbeitet (evtl. sogar rekursiv!) und so weiter.
Dies bezieht sich selbstverständlich nur auf den Thread, in dem die Events abgearbeitet werden - andere Threads können selbstverständlich die Events unterbrechen (technisch gibt es keinen Unterschied zwischen Events und normalen Methoden). Und von "atomar" kann man hier auch nicht wirklich reden.
Bei einem WinForms-Timer könnte es sogar sein, daß dieser verzögert erst aufgerufen wird (wenn ein Event zu lange zum Abarbeiten braucht). Als Standardregel sollte gelten, daß Events (im GUI-Thread) nicht länger als ca. 10ms dauern sollten (alles andere sollte dann in separate Threads ausgelagert werden).