I second
pileofrogs's comment.
Update: I forgot the "cross platform" requirement. I don't believe any of the following applies to Windows systems.
On Linux the kernel will not run scripts started with the first line "#! ..." setuid. I refer you to google:
linux run script setuid
You could write a program and compile it to an executable file then make the executable setuid. Of course anyone who can execute that program can restart apache.
You could try using the "sudo" command.
man.sudo(8). The idea is you can say that whatever user apache runs as is allowed to run the command "/path/to/apachectl restart" as another user (like root) without specifying a password.
Now suppose there is a CGI that updates the apache config files. Further suppose that one time this introduces an error in the configs. Now when the CGI to restart apache is run apache might not restart. I don't know what you are doing. This is just a thought brought on by experience. Think about what could go wrong with a system before building it.