No, unfortunately, it's not possible to change the cursor, but you can hide the regular cursor, using HideCursor and draw your own cursor manually. After you're done, you can use ShowCursor to show the normal cursor again.
The exception you get on startup, when running the program with the Lazarus debugger is normal, and not propagated to your program. It's an exception that is raised internally and then caught and handled all inside the ptc library code. The Lazarus debugger by default catches all exceptions,as soon as they are raised, and not just *unhandled* exceptions. In this case, this is an annoyance, and should be disabled by unchecking 'Notify on Exceptions' inside Tools->Options->Debugger->Language Exceptions.
Also note that you don't need to handle any exceptions in your code, so the try..except block around InitGraph is not needed. This is really not an exception that is propagated to your code, it's just caught by the debugger, because of the 'Notify on Exceptions' option. As you can see, your program runs just fine, when run outside the debugger, and that is also the case, when you remove the try..except block as well.