The length of an array is fixed in VB.NET. If you want to stick to arrays your only option is to allocate a new array of the desired size and copy over existing values from the old one.
You could create a method for this which takes the old array and the new size as parameters and returns the new array which you can then assign to the variable which held the old array up to that point. So it would appear almost as if it was the same array grown.
Another option would be to create a class that encapsulates the array and create an indexer property for it so it can be used like an array to a certain extent.
If you don't actually need an array but just some indexable collection you could use a generic
List(of T)[
^] instead which would allow you to add elements without reallocating it completely. (Actually this is still what's happening under the hoods in the List-class, you just don't have to deal with it yourself.)