RadVirtualizingWrapPanel aims to behave like an ordinary wrap panel, but offer a UI virtualization at the same time, in order to boost performance in more heavy scenarios.
The requirement you have includes various arrange patterns and sizes which are not supported by RadVirtualizingWrapPanel. You have a couple of options in this case.
The first one is to inherit from RadVirtualizingWrapPanel and implement your own Measure and Arrange logic which will override the default one. This is a solution that is as good as creating your own panel, since most of the Arrange logic is in Measure and Arrange overrides.
The second approach can be used if you don't need UI virtualization. You can use an UniformGrid, which can arrange the items the way you configure it which will probably cover the requirements you have.
Let me know if I can provide any additional information.
Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos
and start improving your app based on facts, not hunches.