In this paper, a dynamic resource allocation algorithm to satisfy the packet delay requirements for real-time services, while maximizing the system capacity in multiuser orthogonal frequency division multiplexing (OFDM) systems is discussed. Our proposed cross-layer algorithm, called Joint Dynamic Subcarrier Allocation and Flow Control (DSA-FC) algorithm, consists of two interactive components. In the medium access control (MAC) layer, the users' expected transmission rates in terms of the number of subcarriers per symbol and their corresponding transmission priorities are evaluated. With the subcarrier gain information of each user, the physical (PHY) layer subcarrier allocation is optimally designed to satisfy the users' requirements under the system signal-to-noise ratio (SNR) and power constraints. In a system where the number of active users changes dynamically, the MAC-layer congestion control and removal schemes can guarantee the quality of service (QoS) of the existing users in the system and fully utilize the bandwidth resource. The proposed algorithm combines these two components, and the numerical results show that it significantly improves the system performance in terms of the bandwidth efficiency and delay performance for real-time services.