How to make a range repeat n-times in Google SpreadSheet

I would use split() function instead of arrayformula() and rept() function to repeat cell positions. For example, if your n=4 the formula will look like this:

=split(rept(C1&";",4),";")

rept() repeats cell position C1+semicolon four times creating a string and split() function divides created string by semicolons to horizontal cells.

You can rotate resulted horizontal table to vertical table using transpose() function:

=transpose(split(rept(C1&";",4),";"))

And yes, you can use it to create dynamic formulas with help of arrayformula() function:

=arrayformula(count(D:D)*split(rept(C1&";",4), ";"))

For N rows and M columns of string text:

=ARRAYFORMULA( "text" & T(SEQUENCE(N_rows, M_columns)))

For N rows and M columns of number 123:

=SEQUENCE(N_rows, M_columns, 123 ,0)