I think that the way to go here from a code-compileability and readability perspective is to use a simple data-wrapper class holding a one-dimensional array, and then let your main-code use a one-dimensional array of instances of said data-wrapper class.
public class MyBytePacket
{
private byte [] data;
//Constructors and getters as needed
}
And then from main code;
MyBytePacket [] packets = new MyBytePacket[10];
That way, you can see how many packets you have, as well as how many bytes each packet has, keeping your desired 2D-aspect, but in a more Java-friendly manner.