Well, between alphas, VDM brushes, Spotlight, Lazy Mouse 2.0 fixed depth sculpting, and good old fashion inflation masking, there are a dizzying number of ways to do this from a sculpting standpoint. Nanomesh would allow for a more randomized approach. But I will make the following assumptions:
-
Because you’re willing to position every scale individually, you want more deliberate control over the design and placement of the scales. This makes Nanomesh a poor fit.
-
You want to work non-destructively to your target mesh, with the scales as separate objects.
-
You want the scales to share the same elevation, but different size and shapes.
Even if the feature you want were present, it’s my opinion that IM would be one of the slower ways to do this. In this case, IM would only save time if the inserted meshes contain detail that would be slow or time consuming to replicate in other ways (for instance mechanical detail). At the scale and intended output you’re working for, the detail issue will be minimal–most minor detail variance will be undetectable. You could go to all the trouble of creating the different scale meshes, then placing them one by one, but I would approach this situation in the following manner:
Keeping in mind that in ZBrush, Masking, Polygroups, and Polypaint are all interchangeable ( If you can establish one, you can convert it to one of the others), I would probably choose to do this with either Extracts or Panel Loops. I prefer Extracts for organic subjects because they’re versatile, fast, and are automatically created as a separate subtool.
To use Extracts, all you have to do is establish Masking in the pattern you want. How you do this is limited only by your imagination. In the following example, I simply Polypainted and converted to Polygroups, which can then be quickly masked with a single click. But you could use Spotlight to paint from a texture, paint or stamp with a pattern alpha, apply a texture with UVs and convert to polypaint, or even–at the risk of blowing your mind
– go ahead and insert all the scales as individual IMs, and use the intersection masking plugin to derive masking.
Create your extracts at the desired settings. They will be created all at the same time, and all the outer surfaces will be a single polygroup, making it super easy to select all at once, and apply different effects with the aid of masking functions like shrink/grow/sharpen/blur mask. You can Dynamesh or ZRemesh with “Keep Groups” active to make the extracts more suitable for sculpting and painting.
I selected all the out surfaces at once, masked them, shrunk and blurred the mask to recreate the raised edge and color variance of the scales in your pic. All the Extracts share the same elevation, and contour to the surface of the subject perfectly.

With the Brush> Auto Masking functions, it is possible to sculpt on individual scales, or even only the top surface, without affecting other nearby scales. This will allow you to add minor detail variation or surface texture quickly on a scale by scale basis if need be, for a far greater range of detail variation than if you were simply using the same few scales over and over.
This is how I would do it with the given assumptions. Your mileage may vary.
Good luck!