You understand that (1) and (2) are fully equivalent, right? Even if it turns out it's not possible with the array syntax (nevermind, apparently it's possible, see link above), you could still do
int (*__restrict a)[42]
instead of int a[10][42]
to achieve the same thing.