Have a look at MBeans. There is an example of a timer MBean somewhere in the JBoss documentation, I think. An MBean runs like a service. It could check the time of day and run the batch procedure when it is time to do so.
Why does the batch process need to be started from an EJB? Why wouldn't you just start the process from a Scheduler app or something? If the batch process is to run in an EJB, then the Scheduler could just call a Session Bean that would do the work.