Traditionally, "Project Manager" and "Program Manager" are two very distinct levels of responsibility; regardless of experience, tenure, hierarchy, etc., a Project Manager is responsible for a single aspect of Program, while the Program Manager oversees all of the projects (and project managers) in a particular program. If you go higher up the food chain, a Portfolio manager is in charge of several related Programs.
To break it down, a Portfolio Manager could be in charge of Accounting Systems, a Program Manager in charge of Accounts Receivable Systems, and a Project Manager leading projects for generating invoices and electronic payments.
Projects are grouped into programs. A program falls within a certain area, for example, Manufacturing, Quality, Innovation, etc. Every Program has a PgM and various PMs. A PfM manages the Portfolio.