Je'vais essayer de le dire simplement :
Une ROM serait considérée comme le système d'exploitation complet (pensez à MS Windows, Mac OSX) - dans ce cas, une version du système d'exploitation Android. Tous ces systèmes d'exploitation ont une section de code, qui est appelée le noyau. Le noyau est responsable de nombreuses choses au sein du système d'exploitation, principalement la distribution des capacités de traitement entre les programmes (ordonnancement).
Lorsqu'il est question de ROM ou de noyaux "personnalisés" au sein de la communauté Android, les gens font référence à des progiciels complets (Cyanogenmod, ParanoidAndroid etc) ou à des noyaux qui sont des logiciels d'après-vente et qui ne sont pas livrés par le fabricant. Un noyau personnalisé ne concerne que la section du système d'exploitation qui gère l'ordonnancement, etc. Ces deux choses sont en contraste avec "Android stock", qui est ce qui est livré sur les appareils Android respectifs.
Vous pouvez flasher (installer) un noyau personnalisé sur une ROM stock pour potentiellement améliorer les performances/la durée de vie de la batterie, etc. en fonction de ce que la personne qui a développé lesdits noyaux essaie d'obtenir avec elle (c'est-à-dire une programmation plus agressive, un overclocking, un undervolting, etc.)
J'espère que cela clarifie les choses pour vous.