Currently the scheduler begins running during Liferay's startup and will run at every X minutes based on when the module was registered during startup. This makes scheduling content for expiration or publication with precision extremely difficult without using unrealistically low check intervals (e.g. 1 minute).
Additionally, front-end content creators and site administrators may have no idea what time the scheduler is actually running on, making it very difficult to administrate time-sensitive content. It would be a significantly better user experience if the scheduler were to run on predictable real-time intervals.
As an example, if you set the scheduler's check interval to 20 minutes, it could be running at 10:07, 10:27, 10:47, etc. It would be much more intuitive and user-friendly if setting the interval to 10 minutes meant it would run at 10:00, 10:20, 10:40, etc.