This paper considers network capacity and user coverage improvement in Internet of Things (IoT)-oriented massive MIMO systems. In the literature, user grouping approaches have been used in massive MIMO to improve the network capacity, where users are generally divided into non-overlapping groups, and those users with less favorable channel conditions are dropped for capacity optimization. As a result, users may suffer from unpredicted interruptions and delays, even long time disconnection from the network. Moreover, non-overlapping user grouping also leads to unnecessary resource waste. As an effort to overcome these limitations, in this paper, we introduce the concept of overlapping user grouping by exploiting the favorable propagation property in massive MIMO. More specifically, we propose two new user grouping approaches. First, we present a greedy search-based user grouping method by allowing overlapping among the selected subgroups. Second, we introduce a new channel similarity measure, and develop a low complexity overlapping user grouping approach based on the spectral clustering algorithm in machine learning. Both the theoretical and numerical results demonstrate that: overlapping user grouping can achieve much higher network capacity, and can ensure that at any given time, each IoT device will be served in at least one subgroup.