Je le fais en ajoutant le fichier curseur .cur dans la partie Ressources du projet (j'utilise Visual Studio). Je ne sais pas s'il doit s'agir d'un fichier .cur, du moment que le programme de développement peut le charger.
Après avoir fait cela dans la partie déclaration des variables de mon code, je crée un MemoryStream à partir du fichier curseur :
private static System.IO.MemoryStream cursorMemoryStream = new System.IO.MemoryStream(myCurrentProject.Properties.Resources.myCursorFile);
...et ensuite vous pouvez créer le curseur à partir du MemoryStream :
private Cursor newCursor = new Cursor(cursorMemoryStream);
Vous pouvez ensuite affecter le curseur comme vous le souhaitez dans le programme, par ex.
pictureBox1.Cursor = newCursor;
et le nouveau curseur est compilé comme faisant partie du programme.