We consider structured peer-to-peer (P2P) networks for distributing streaming data such as real-time video. In such P2P networks, each chunk of data is transferred from the server to all the peers using a data distribution tree. The number of trees and the number of children in each tree contribute to the overhead in the data distribution process. In this paper, we show that the maximum streaming rate can be achieved using O(log N) trees in a network of N peers with homogeneous upload capacities, where each peer has O(1) children in each tree. It is further shown that O(1) trees suffice to achieve a near-maximum streaming rate with heterogeneous upload capacities. The solution involves mapping the tree construction problem to a novel Block Packing problem where two-dimensional blocks are packed into a two-dimensional bin subject to some packing constraints. The block packing problem allows us to visualize network bandwidth usage, thus facilitating a particular way to construct trees which establish the above bounds.