Scheduling real-time and non-real time packets at the sensor nodes is significantly important to reduce processing overhead, energy consumptions, communications bandwidth, and end-to-end data transmission delay of Wireless Sensor Network (WSN). Most of the existing packet scheduling algorithms of WSN use assignments based on First-Come First-Served (FCFS), non-preemptive priority, and preemptive priority scheduling. However, these algorithms incur a large processing overhead and data transmission delay and are not dynamic to the data traffic changes. In this paper, we propose a Dynamic Multilevel Priority (DMP) packet scheduling scheme. In the proposed scheme, each node, except those at the last level of the virtual hierarchy in the zone based topology of WSN, has three levels of priority queues. Real-time packets are placed into the highest-priority queue and can preempt data packets in other queues. Non-real-time packets are placed into two other queues based on a certain threshold of their estimated processing time. Leaf nodes have two queues for real-time and non-real-time data packets since they do not receive data from other nodes and thus, reduce end-to-end delay. We evaluate the performance of the proposed DMP packet scheduling scheme through simulations for real-time and non-real-time data. Simulation results illustrate that the DMP packet scheduling scheme outperforms conventional schemes in terms of average data waiting time and end-to-end delay.