You need access to the Cocoa frameworks which seems possible with this library (not tested). Within Cocoa the object to call is NSCursor. In Objective-c you set the cursor like this :
[NSCursor.arrowCursor set]
You can also use a pair of command to change the cursor and reset it after the action :
[NSCursor.pointingHandCursor push]
// Do an action
[NSCursor pop]
To create a custom cursor, you use a NSImage you create from a path (here I do it with a pdf image to support high resolution screen) :
NSString * pathToAnImage = "A/B/C.pdf"
NSImage * image = [NSImage multiRepresentationImageFromPDF: pathToAnImage withMaxScaleFactor:4];
NSPoint hotSpot = NSMakePoint(8, 8); //the relative position within the image interpreted as the cursor location
NSCursor * customCursor = [[NSCursor alloc] initWithImage:image hotSpot:hotSpot]]
Then you can use it as any other system cursor.