Just make a "usb mouse" which is actually a programmable arduino? What makes an aimbot possible is that something can read the game's state and turn it into a mousemove signal. It can then feed it into the arduino instead of directly moving the mouse.
The problem is preventing game state from being read. Part of this can be done by detecting DLL injections.
Sadly you will always be able to write a monitor that runs as root. After all, the kernel literally administrates the computer's memory. Of course it has read, and write, access. So in the worst case, cheaters will use custom "memory drivers".