You can have multiple materials in one mesh in Three.js. Supply an array of materials to the Mesh constructor instead of a single material. You then also have to specify vertex groups in the geometry. If you want, you can specify the groups to contain the same vertices, only different material index.
It is also possible to define multiple meshes using the same geometry, but unique materials. You can add oneorganize the meshes as childchildren of another, if you likea THREE.Group.