John Carmack almost certainly was the first to use the hardware scrolling capabilities of the EGA specifically, together with efficient tile and sprite drawing and erasing algorithms to create a slick, full-screen scrolling 16-colour console-like game engine on the IBM PC. "Adaptive Tile Refresh" was one part of this. He did so through experimentation, reading documentation and learning about the EGA and drawing/masking/rotating techniques through Michael Abrash's articles online, in Dr. Dobbs Journal and in the book Power Graphics Programming.
(And note that Mega Man (1990) for DOS came out very close (I believe 4 colourcolor CGA), and other earlier DOS games like License to Kill (1989) and Spy Hunter (1984) had scrolling as well - this wasn't in all directions and probably a full-screen redraw. I've also found a Quora post attributed to the developer of the DOS port of Golden Axe that says that game predates Keen.)
No, Carmack wasn't the first person ever to implement a system where tiles upon a moving background are redrawn row-by-row, or to devise algorithms for efficiently erasing and drawing blocks of tiles or sprites based on their motion (or lack of).
I've opened another question to discuss what parts of the Keen engine 'Adaptive tile refresh' refers to - I believe it's an optimisationoptimization available when using hardware scrolling on a software-drawn tilemap to reduce the frequency and number of tiles that need to be redrawn as the screen scrolls. Looking at Chocolate Keen (reverse engineered from a disassembly of Keen 1-3) sprite handling also falls under ATR - when a sprite is drawn, it invalidates all tiles it overlaps on the tilemap on that display page, which are then redrawn on the next tilemap redraw (that is, refresh) pass.
The ZX Spectrum has no hardware scrolling or sprites, only a 1-bit unscrollable display, chunked up in to 8x8 regions colouredcolored by 'attribute' values. Less-experienced ZX Spectrum programmers writing arcade ports such as Space Invaders-clones would clear the entire screen and draw the sprites, but more-experienced programmers would erase and redraw any moving elements or even redraw only their edges, or use XOR to draw-undraw elements if the resulting visual garbage when sprites overlapped other sprites or the background was acceptable. (XOR was known - mentioned in this 1976/8 patent, ZX Spectrum BASIC's drawing primitives expose XOR drawing mode as the statement OVER n
.)