In order to run Apache on port 80 you will need to run it as root. Anything under 1024 is a privileged port.
Apache has a large amount of security measures in place which makes it safe to run as root. All Apache connection are made through the Apache user. (I believe this is wwwrun as default)
Although, this doesn’t answer your question, if you want Apache on port 80 I don’t think you can run it on anything else but root. There probably is a way to allow port 80 to be opened by a user but I am not aware of this procedure.
Tomcat can definitely be ran by a different user than root. This I would recommend. It as simple as:
Adding a new Tomcat user and set its home directory to Tomcat directory
Set the permissions of Tomcat directory to allow for Tomcat user.
Run startup / shutdown scripts using the Tomcat user.
Just because a file is owned by root does not mean it is run as root. It is run by the user that starts it if the permissions allow it. Almost all programs are installed with root ownership but permissions are set for at least some subset of users to run them. If the ownership was to a single user only that user could run them unless they give permission to other users to run them. So don’t confuse ownership with the permissions a program runs under.