How running AE program as Batch differs from running it online?

Application Engine programs are designed for two types of execution and each has its own pool of Temporary Tables

Online:
Invoked by CallAppEngine from People code
Run quickly, synchronously, and at random times.
Potential for simultaneous executions
Uses the online Temporary Table pool.
Not restart able.

Psae.exe randomly assigns an instance number from the number range on your online temp tables.
If the instance number is in use psae.exe puts the program in Queue until the assigned instance becomes free.

Unlock on completion, on Crash free from Manage Abends.

Batch:
Invoked through the Process Scheduler.
Run for longer amounts of time, asynchronously, and at scheduled times.
Can be designed for parallel execution for performance.
Uses the Batch/Dedicated Temporary table.
Restart able.

It allocates instance number based on the availability on a record by record basis and psae.exe begins with the lowest instance numbers.If the properties are set continue - Base table is used with Process instance as key.
      
If Re-starable – Locked across Restarts until completes successfully.

If not Re-startable on Program completion.