Please work on your language research. Currently, the C/C++ is considered the language that can produce the most efficient and fastest code, if you know how. And C/C++ is heavily dependent on pointers, that is how these languages gain most of the speed and efficiency.
Please try to understand difference between indexers in .NET/C# and pointers.
Pointers in C/C++ sense is just some address in memory and data type of the pointer says how big steps it does when incremented/decremented, the size of the item in the memory. Can not be anything faster.
Indexers are much more complex beasts in C#.
Also the question you have linked made a poor attempt at measuring the real speed.
It measured from the start of the program without waiting for the dust to settle after the program starts up. Well, JIT can be still active during that time, thread for the process was just barely constructed etc. It was more like measurement of the runtime environment, its ability to fire up fast some process.
in C# array can be pinned and accessed in the very fast way, not subject of the garbage collection for a moment.
Please do not try to choose a language based on such poor source of the informations. Currently, C# and Java are less or more comparable...
In a good design, you can manage to store data in one-dimensional array...