header is a function/class/interface without the body in a common module, and
impl is the corresponding declaration with the body in a platform-specific module.
header is used to declare an API that is can be used in a common code, but have different implementations in different platforms.
Usually is this situation we declare a header class in a common module, implement that class in JS and provide
impl typealias to JDK class in JVM. However it doesn't work flawlessly now and may require suppressing some errors. And I'm not sure that trick with the impl typealias will be supported in the first release.
We commit all our work regarding multiplatform support to the master branch, so eventually it is delivered as an experimental functionality in 1.1.x releases. When it's baked enough we'll make an announcement, provide some tutorials, etc.
Current issues are tracked with the