Oh sorry, I forgot the diagonals.
Here is a solution with 254 tiles:
Consider a 2x2-block
a b
c d
It contains every combination of those 4 digits without repetition, 24 numbers in total.
To get all 720 numbers with 3 different digits, we need at least 30 sets of those 4 numbers.
I started with all sets containing 1, and found a solution for 12 of those sets:
1234
1256
1278
1290
1357
1360
1389
1459
1468
1470
1580
1679
Obviously, they have some overlap: Groups which share two numbers. This allows a better packing into 3 blocks of 9 tiles each:
8 5 6
0 1 2
6 3 4
3 7 8
5 1 2
4 9 0
6 9 3
7 1 8
0 4 6
Every possible "L"-shaped set in those blocks gives 6 unique, different numbers, with a total of 12*24=288 numbers in those 27 tiles, including 216 with a 1 inside.
It gets tricky to find additional combination, but it still works. Here are all missing sets for 2 (without 1), again packed into blocks of 9. This gives additional 8*24=192 numbers in 18 tiles.
7 8 3
6 2 5
4 0 9
6 3 0
9 2 7
8 4 5
It is not possible to do the same for 3 - I think it is a fundamental problem. Here are groups which are quite good:
3456
3479
3480
3590 <- 590 was covered by 2590
3678 <- 678 was covered by 2678
As pattern:
4 0 7 9 0
8 3 4 3 5
7 6 5
This covers additional 18 groups of 3 numbers, so we have 108 more numbers with 13 tiles.
To summarize, I covered 588 numbers with 58 tiles.
There are 720 numbers with three different digits, so we are missing 132, or 22 groups of 3 numbers. As I am tired of finding blocks of 4, let's use L-shaped groups of 3 to cover those missing numbers: 66 additional tiles cover 132 numbers (see how bad the ratio gets ;)).
All those 720 numbers get covered with 124 tiles.
For numbers with repeating digits, consider the following pattern:
1 2 3 4
0 0 0 5 0
6 7 8 9
It contains all numbers with two or three times 0 (in total 28 combinations), and needs 13 tiles. We can use ten of those patterns to cover all missing numbers, this needs 130 tiles.
In total, we need 254 tiles to cover all numbers from 000 to 999.
This is a weak upper bound - those L-shaped elements have a bad ratio, and the pattern for doubled digits could be improved (and glued together), in addition some (most? all?) missing groups can be included there.
Geometry is an issue, but the possible size reductions should make it fit.
Edit: Improved design for 0, 4 and 5:
1 2 4 9
5 5 5 8 5
3 6 0 7 4 (see edit3)
4 4 4 5 4
1 2 9 8
0 0 0 7 0
3 4 5 6
This covers the triples (450,670,789,780,790,458,570,560,578,589) for a reduction by 30 tiles. In addition, it needs just 31 tiles instead of 39. This reduces the number of tiles by 38, for a new result of 216 tiles.
Edit2: Improved design for 6 and 7:
0 8 9 5
7 7 7 6 7
1 2 3 4
6 6 6 9 6
7 5 8 0 4 (see edit 3)
This covers the nine triples (469,567,568,689,680,690,467,569,579) for an additional reduction by 27 tiles. In addition, it just needs 22 tiles instead of 26. New result: 185 tiles.
Edit3: The two remaining triples can be added to the existing patterns, saving 4 tiles and removing all small parts. New result: 181 tiles.
Before you give that to your friend, you should let a computer check all combinations ;).Edit4: In any way, it fits in a 16x16-square without problems, see attachment. Even if there are some numbers missing, it is easy to add them.
You can combine 1/2/3/8/9 to save even more space without problems. This allows a reduction of at least 16 tiles. In addition, I would expect that many elements of the upper "3"-part are included in other elements, so this could shrink a bit, too.